diff --git a/packages/protobuf-bench/README.md b/packages/protobuf-bench/README.md index 45c5d6ceb..d25ce69a4 100644 --- a/packages/protobuf-bench/README.md +++ b/packages/protobuf-bench/README.md @@ -10,5 +10,5 @@ server would usually do. | code generator | bundle size | minified | compressed | |---------------------|------------------------:|-----------------------:|-------------------:| -| protobuf-es | 126,229 b | 64,861 b | 15,866 b | +| protobuf-es | 127,064 b | 65,515 b | 15,970 b | | protobuf-javascript | 394,384 b | 288,654 b | 45,122 b | diff --git a/packages/protobuf-conformance/failing_tests_text_format.txt b/packages/protobuf-conformance/failing_tests_text_format.txt index c4dccbbdb..d3c669fd8 100644 --- a/packages/protobuf-conformance/failing_tests_text_format.txt +++ b/packages/protobuf-conformance/failing_tests_text_format.txt @@ -23,6 +23,39 @@ Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongSh Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortString Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairShortLongBytes Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairShortLongString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeSurrogateFirstOnlyBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeSurrogateFirstOnlyString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeSurrogatePairBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeSurrogatePairString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeSurrogateSecondOnlyBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeSurrogateSecondOnlyString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapesBytes.ProtobufOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapesBytes.TextFormatOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapesString.ProtobufOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapesString.TextFormatOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeBytes.ProtobufOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeBytes.TextFormatOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeString.ProtobufOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeString.TextFormatOutput +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogateFirstOnlyBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogateFirstOnlyString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogateSecondOnlyBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogateSecondOnlyString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortString +Recommended.Editions_Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairShortLongBytes +Recommended.Editions_Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairShortLongString +Required.Proto2.TextFormatInput.GroupFieldExtension.ProtobufOutput +Required.Proto2.TextFormatInput.GroupFieldExtension.TextFormatOutput +Required.Proto2.TextFormatInput.GroupFieldExtensionGroupName +Required.Proto2.TextFormatInput.GroupFieldLowercased.ProtobufOutput +Required.Proto2.TextFormatInput.GroupFieldLowercased.TextFormatOutput +Required.Proto2.TextFormatInput.GroupFieldLowercasedMultiWord.ProtobufOutput +Required.Proto2.TextFormatInput.GroupFieldLowercasedMultiWord.TextFormatOutput +Required.Proto2.TextFormatInput.GroupFieldMultiWord.ProtobufOutput +Required.Proto2.TextFormatInput.GroupFieldMultiWord.TextFormatOutput Required.Proto2.TextFormatInput.GroupFieldEmpty.ProtobufOutput Required.Proto2.TextFormatInput.GroupFieldEmpty.TextFormatOutput Required.Proto2.TextFormatInput.GroupFieldNoColon.ProtobufOutput @@ -111,3 +144,115 @@ Required.Proto3.TextFormatInput.Uint32FieldTooLarge Required.Proto3.TextFormatInput.Uint64FieldMaxValue.ProtobufOutput Required.Proto3.TextFormatInput.Uint64FieldMaxValue.TextFormatOutput Required.Proto3.TextFormatInput.Uint64FieldTooLarge +Required.Editions.TextFormatInput.DelimitedFieldExtension.ProtobufOutput +Required.Editions.TextFormatInput.DelimitedFieldExtension.TextFormatOutput +Required.Editions.TextFormatInput.DelimitedFieldExtensionMessageName +Required.Editions.TextFormatInput.DelimitedFieldLowercased.ProtobufOutput +Required.Editions.TextFormatInput.DelimitedFieldLowercased.TextFormatOutput +Required.Editions.TextFormatInput.DelimitedFieldLowercasedDifferent.ProtobufOutput +Required.Editions.TextFormatInput.DelimitedFieldLowercasedDifferent.TextFormatOutput +Required.Editions.TextFormatInput.GroupFieldEmpty.ProtobufOutput +Required.Editions.TextFormatInput.GroupFieldEmpty.TextFormatOutput +Required.Editions.TextFormatInput.GroupFieldExtension.ProtobufOutput +Required.Editions.TextFormatInput.GroupFieldExtension.TextFormatOutput +Required.Editions.TextFormatInput.GroupFieldNoColon.ProtobufOutput +Required.Editions.TextFormatInput.GroupFieldNoColon.TextFormatOutput +Required.Editions.TextFormatInput.GroupFieldWithColon.ProtobufOutput +Required.Editions.TextFormatInput.GroupFieldWithColon.TextFormatOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldEmpty.ProtobufOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldEmpty.TextFormatOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldExtension.ProtobufOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldExtension.TextFormatOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldExtensionGroupName +Required.Editions_Proto2.TextFormatInput.GroupFieldLowercased.ProtobufOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldLowercased.TextFormatOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldLowercasedMultiWord.ProtobufOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldLowercasedMultiWord.TextFormatOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldMultiWord.ProtobufOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldMultiWord.TextFormatOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldNoColon.ProtobufOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldNoColon.TextFormatOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldWithColon.ProtobufOutput +Required.Editions_Proto2.TextFormatInput.GroupFieldWithColon.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.AlphabeticallySortedMapBoolKeys.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.AlphabeticallySortedMapBoolKeys.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.AlphabeticallySortedMapIntKeys.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.AlphabeticallySortedMapIntKeys.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.AlphabeticallySortedMapStringKeys.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.AlphabeticallySortedMapStringKeys.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.AnyField.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.AnyField.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.AnyFieldWithInvalidType +Required.Editions_Proto3.TextFormatInput.AnyFieldWithRawBytes.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.AnyFieldWithRawBytes.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.BytesFieldBadUTF8Hex.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.BytesFieldBadUTF8Hex.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.BytesFieldBadUTF8Octal.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.BytesFieldBadUTF8Octal.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.DuplicateMapKey.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatField.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatField.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldLargerThanInt64.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldLargerThanInt64.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldLargerThanUint64.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldLargerThanUint64.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldMaxValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldMaxValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldMinValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldMinValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldNaNValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldNaNValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldNegInfValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldNegInfValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldPosInfValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldPosInfValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldTooLarge.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldTooLarge.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldTooSmall.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldTooSmall.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldWithInt32Max.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldWithInt32Max.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldWithVeryPreciseNumber.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.FloatFieldWithVeryPreciseNumber.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.HelloWorld.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.HelloWorld.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Int32FieldMaxValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.Int32FieldMaxValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Int32FieldMinValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.Int32FieldMinValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Int32FieldTooLarge +Required.Editions_Proto3.TextFormatInput.Int32FieldTooSmall +Required.Editions_Proto3.TextFormatInput.Int64FieldMaxValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.Int64FieldMaxValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Int64FieldMinValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.Int64FieldMinValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Int64FieldTooLarge +Required.Editions_Proto3.TextFormatInput.Int64FieldTooSmall +Required.Editions_Proto3.TextFormatInput.StringFieldBadUTF8Hex +Required.Editions_Proto3.TextFormatInput.StringFieldBadUTF8Octal +Required.Editions_Proto3.TextFormatInput.StringLiteralBasicEscapesBytes.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralBasicEscapesBytes.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralBasicEscapesString.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralBasicEscapesString.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralConcatBytes.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralConcatBytes.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralConcatString.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralConcatString.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralHexEscapesBytes.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralHexEscapesBytes.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralHexEscapesString.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralHexEscapesString.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralIncludesLFBytes +Required.Editions_Proto3.TextFormatInput.StringLiteralIncludesLFString +Required.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeTooLargeBytes +Required.Editions_Proto3.TextFormatInput.StringLiteralLongUnicodeEscapeTooLargeString +Required.Editions_Proto3.TextFormatInput.StringLiteralOctalEscapesBytes.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralOctalEscapesBytes.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralOctalEscapesString.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.StringLiteralOctalEscapesString.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Uint32FieldMaxValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.Uint32FieldMaxValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Uint32FieldTooLarge +Required.Editions_Proto3.TextFormatInput.Uint64FieldMaxValue.ProtobufOutput +Required.Editions_Proto3.TextFormatInput.Uint64FieldMaxValue.TextFormatOutput +Required.Editions_Proto3.TextFormatInput.Uint64FieldTooLarge diff --git a/packages/protobuf-conformance/failing_tests_without_bigint.txt b/packages/protobuf-conformance/failing_tests_without_bigint.txt index 92d064173..d6a842b7d 100644 --- a/packages/protobuf-conformance/failing_tests_without_bigint.txt +++ b/packages/protobuf-conformance/failing_tests_without_bigint.txt @@ -15,6 +15,18 @@ Required.Proto2.JsonInput.Int64FieldMinValueNotQuoted.JsonOutput Required.Proto2.JsonInput.Int64FieldMinValueNotQuoted.ProtobufOutput Required.Proto2.JsonInput.Uint64FieldMaxValueNotQuoted.JsonOutput Required.Proto2.JsonInput.Uint64FieldMaxValueNotQuoted.ProtobufOutput +Required.Editions_Proto2.JsonInput.Int64FieldMaxValueNotQuoted.JsonOutput +Required.Editions_Proto2.JsonInput.Int64FieldMaxValueNotQuoted.ProtobufOutput +Required.Editions_Proto2.JsonInput.Int64FieldMinValueNotQuoted.JsonOutput +Required.Editions_Proto2.JsonInput.Int64FieldMinValueNotQuoted.ProtobufOutput +Required.Editions_Proto2.JsonInput.Uint64FieldMaxValueNotQuoted.JsonOutput +Required.Editions_Proto2.JsonInput.Uint64FieldMaxValueNotQuoted.ProtobufOutput +Required.Editions_Proto3.JsonInput.Int64FieldMaxValueNotQuoted.JsonOutput +Required.Editions_Proto3.JsonInput.Int64FieldMaxValueNotQuoted.ProtobufOutput +Required.Editions_Proto3.JsonInput.Int64FieldMinValueNotQuoted.JsonOutput +Required.Editions_Proto3.JsonInput.Int64FieldMinValueNotQuoted.ProtobufOutput +Required.Editions_Proto3.JsonInput.Uint64FieldMaxValueNotQuoted.JsonOutput +Required.Editions_Proto3.JsonInput.Uint64FieldMaxValueNotQuoted.ProtobufOutput # Without BigInt support, our implementation does not validate that 64-bit # values are within bounds. @@ -24,3 +36,9 @@ Required.Proto3.JsonInput.Uint64FieldTooLarge Required.Proto2.JsonInput.Int64FieldTooLarge Required.Proto2.JsonInput.Int64FieldTooSmall Required.Proto2.JsonInput.Uint64FieldTooLarge +Required.Editions_Proto2.JsonInput.Int64FieldTooLarge +Required.Editions_Proto2.JsonInput.Int64FieldTooSmall +Required.Editions_Proto2.JsonInput.Uint64FieldTooLarge +Required.Editions_Proto3.JsonInput.Int64FieldTooLarge +Required.Editions_Proto3.JsonInput.Int64FieldTooSmall +Required.Editions_Proto3.JsonInput.Uint64FieldTooLarge diff --git a/packages/protobuf-conformance/package.json b/packages/protobuf-conformance/package.json index d97ca120f..bf0bb1c3b 100644 --- a/packages/protobuf-conformance/package.json +++ b/packages/protobuf-conformance/package.json @@ -9,8 +9,8 @@ "generate": "protoc --es_out=src/gen --es_opt=ts_nocheck=false,target=ts --proto_path=$(upstream-include conformance) $(upstream-files conformance)", "postgenerate": "license-header src/gen", "test": "npm run test:bigint && npm run test:string", - "test:bigint": "BUF_BIGINT_DISABLE=0 conformance_test_runner --enforce_recommended --failure_list failing_tests_with_bigint.txt --text_format_failure_list failing_tests_text_format.txt bin/conformance.js", - "test:string": "BUF_BIGINT_DISABLE=1 conformance_test_runner --enforce_recommended --failure_list failing_tests_without_bigint.txt --text_format_failure_list failing_tests_text_format.txt bin/conformance.js" + "test:bigint": "BUF_BIGINT_DISABLE=0 conformance_test_runner --maximum_edition MAX --enforce_recommended --failure_list failing_tests_with_bigint.txt --text_format_failure_list failing_tests_text_format.txt bin/conformance.js", + "test:string": "BUF_BIGINT_DISABLE=1 conformance_test_runner --maximum_edition MAX --enforce_recommended --failure_list failing_tests_without_bigint.txt --text_format_failure_list failing_tests_text_format.txt bin/conformance.js" }, "type": "module", "types": "./dist/types/index.d.ts", diff --git a/packages/protobuf-conformance/src/conformance.ts b/packages/protobuf-conformance/src/conformance.ts index 7b5d33754..4169f486a 100644 --- a/packages/protobuf-conformance/src/conformance.ts +++ b/packages/protobuf-conformance/src/conformance.ts @@ -35,6 +35,9 @@ import { } from "./gen/conformance/conformance_pb.js"; import { fileDesc_google_protobuf_test_messages_proto3 } from "./gen/google/protobuf/test_messages_proto3_pb.js"; import { fileDesc_google_protobuf_test_messages_proto2 } from "./gen/google/protobuf/test_messages_proto2_pb.js"; +import { fileDesc_google_protobuf_test_messages_edition2023 } from "./gen/google/protobuf/test_messages_edition2023_pb.js"; +import { fileDesc_google_protobuf_test_messages_proto2_editions } from "./gen/google/protobuf/test_messages_proto2_editions_pb.js"; +import { fileDesc_google_protobuf_test_messages_proto3_editions } from "./gen/google/protobuf/test_messages_proto3_editions_pb.js"; import { fileDesc_google_protobuf_any, fileDesc_google_protobuf_duration, @@ -47,6 +50,9 @@ import { const registry = createRegistry( fileDesc_google_protobuf_test_messages_proto2, fileDesc_google_protobuf_test_messages_proto3, + fileDesc_google_protobuf_test_messages_edition2023, + fileDesc_google_protobuf_test_messages_proto2_editions, + fileDesc_google_protobuf_test_messages_proto3_editions, fileDesc_google_protobuf_any, fileDesc_google_protobuf_struct, fileDesc_google_protobuf_field_mask, diff --git a/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_edition2023_pb.ts b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_edition2023_pb.ts new file mode 100644 index 000000000..c479d7f92 --- /dev/null +++ b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_edition2023_pb.ts @@ -0,0 +1,709 @@ +// Copyright 2021-2024 Buf Technologies, Inc. +// +// 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. + +// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" +// @generated from file google/protobuf/test_messages_edition2023.proto (package protobuf_test_messages.editions, edition 2023) +/* eslint-disable */ + +import type { GenDescEnum, GenDescExtension, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; +import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; +import type { Message } from "@bufbuild/protobuf"; + +export const fileDesc_google_protobuf_test_messages_edition2023: GenDescFile = /*@__PURE__*/ + fileDesc("Ci9nb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19lZGl0aW9uMjAyMy5wcm90bxIfcHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucyLcNgoXVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSZwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk5lc3RlZE1lc3NhZ2USXAoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMjoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5Gb3JlaWduTWVzc2FnZUVkaXRpb24yMDIzEmEKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5OZXN0ZWRFbnVtElYKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjI3LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuRm9yZWlnbkVudW1FZGl0aW9uMjAyMxIhChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCEhkKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBElMKEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMxIWCg5yZXBlYXRlZF9pbnQzMhgfIAMoBRIWCg5yZXBlYXRlZF9pbnQ2NBggIAMoAxIXCg9yZXBlYXRlZF91aW50MzIYISADKA0SFwoPcmVwZWF0ZWRfdWludDY0GCIgAygEEhcKD3JlcGVhdGVkX3NpbnQzMhgjIAMoERIXCg9yZXBlYXRlZF9zaW50NjQYJCADKBISGAoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoBxIYChByZXBlYXRlZF9maXhlZDY0GCYgAygGEhkKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPEhkKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQEhYKDnJlcGVhdGVkX2Zsb2F0GCkgAygCEhcKD3JlcGVhdGVkX2RvdWJsZRgqIAMoARIVCg1yZXBlYXRlZF9ib29sGCsgAygIEhcKD3JlcGVhdGVkX3N0cmluZxgsIAMoCRIWCg5yZXBlYXRlZF9ieXRlcxgtIAMoDBJnChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTmVzdGVkTWVzc2FnZRJcChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyOi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLkZvcmVpZ25NZXNzYWdlRWRpdGlvbjIwMjMSYQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk5lc3RlZEVudW0SVgoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMjcucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5Gb3JlaWduRW51bUVkaXRpb24yMDIzEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGwoMcGFja2VkX2ludDMyGEsgAygFQgWqAQIYARIbCgxwYWNrZWRfaW50NjQYTCADKANCBaoBAhgBEhwKDXBhY2tlZF91aW50MzIYTSADKA1CBaoBAhgBEhwKDXBhY2tlZF91aW50NjQYTiADKARCBaoBAhgBEhwKDXBhY2tlZF9zaW50MzIYTyADKBFCBaoBAhgBEhwKDXBhY2tlZF9zaW50NjQYUCADKBJCBaoBAhgBEh0KDnBhY2tlZF9maXhlZDMyGFEgAygHQgWqAQIYARIdCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkIFqgECGAESHgoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgWqAQIYARIeCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCBaoBAhgBEhsKDHBhY2tlZF9mbG9hdBhVIAMoAkIFqgECGAESHAoNcGFja2VkX2RvdWJsZRhWIAMoAUIFqgECGAESGgoLcGFja2VkX2Jvb2wYVyADKAhCBaoBAhgBEmYKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTmVzdGVkRW51bUIFqgECGAESHQoOdW5wYWNrZWRfaW50MzIYWSADKAVCBaoBAhgCEh0KDnVucGFja2VkX2ludDY0GFogAygDQgWqAQIYAhIeCg91bnBhY2tlZF91aW50MzIYWyADKA1CBaoBAhgCEh4KD3VucGFja2VkX3VpbnQ2NBhcIAMoBEIFqgECGAISHgoPdW5wYWNrZWRfc2ludDMyGF0gAygRQgWqAQIYAhIeCg91bnBhY2tlZF9zaW50NjQYXiADKBJCBaoBAhgCEh8KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCBaoBAhgCEh8KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCBaoBAhgCEiAKEXVucGFja2VkX3NmaXhlZDMyGGEgAygPQgWqAQIYAhIgChF1bnBhY2tlZF9zZml4ZWQ2NBhiIAMoEEIFqgECGAISHQoOdW5wYWNrZWRfZmxvYXQYYyADKAJCBaoBAhgCEh4KD3VucGFja2VkX2RvdWJsZRhkIAMoAUIFqgECGAISHAoNdW5wYWNrZWRfYm9vbBhlIAMoCEIFqgECGAISaAoUdW5wYWNrZWRfbmVzdGVkX2VudW0YZiADKA4yQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk5lc3RlZEVudW1CBaoBAhgCEmQKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTWFwSW50MzJJbnQzMkVudHJ5EmQKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTWFwSW50NjRJbnQ2NEVudHJ5EmgKEW1hcF91aW50MzJfdWludDMyGDogAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBVaW50MzJVaW50MzJFbnRyeRJoChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTWFwVWludDY0VWludDY0RW50cnkSaAoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk1hcFNpbnQzMlNpbnQzMkVudHJ5EmgKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBTaW50NjRTaW50NjRFbnRyeRJsChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMk8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5EmwKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsyTy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk1hcEZpeGVkNjRGaXhlZDY0RW50cnkScAoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMlEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkScAoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMlEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSZAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBJbnQzMkZsb2F0RW50cnkSZgoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJMLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTWFwSW50MzJEb3VibGVFbnRyeRJgCg1tYXBfYm9vbF9ib29sGEQgAygLMkkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBCb29sQm9vbEVudHJ5EmgKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBTdHJpbmdTdHJpbmdFbnRyeRJmChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBTdHJpbmdCeXRlc0VudHJ5EncKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyVC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJ5ChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJVLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRJxChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMlEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMy5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkScwoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsyUi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgNSAASZgoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAEhQKCm9uZW9mX2Jvb2wYcyABKAhIABIWCgxvbmVvZl91aW50NjQYdCABKARIABIVCgtvbmVvZl9mbG9hdBh1IAEoAkgAEhYKDG9uZW9mX2RvdWJsZRh2IAEoAUgAElkKCm9uZW9mX2VudW0YdyABKA4yQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk5lc3RlZEVudW1IABJlCg1ncm91cGxpa2V0eXBlGMkBIAEoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuR3JvdXBMaWtlVHlwZUIFqgECKAISZwoPZGVsaW1pdGVkX2ZpZWxkGMoBIAEoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuR3JvdXBMaWtlVHlwZUIFqgECKAIaaQoNTmVzdGVkTWVzc2FnZRIJCgFhGAEgASgFEk0KC2NvcmVjdXJzaXZlGAIgASgLMjgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMxo0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjUKE01hcFN0cmluZ0J5dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ARqFAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJVCgV2YWx1ZRgCIAEoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMuTmVzdGVkTWVzc2FnZToCOAEaegocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAkSSQoFdmFsdWUYAiABKAsyOi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLkZvcmVpZ25NZXNzYWdlRWRpdGlvbjIwMjM6AjgBGn8KGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRILCgNrZXkYASABKAkSUgoFdmFsdWUYAiABKA4yQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzLk5lc3RlZEVudW06AjgBGnQKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSCwoDa2V5GAEgASgJEkYKBXZhbHVlGAIgASgOMjcucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5Gb3JlaWduRW51bUVkaXRpb24yMDIzOgI4ARo8Cg1Hcm91cExpa2VUeXBlEhQKC2dyb3VwX2ludDMyGMoBIAEoBRIVCgxncm91cF91aW50MzIYywEgASgNIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEqBQh4EMkBQg0KC29uZW9mX2ZpZWxkIiYKGUZvcmVpZ25NZXNzYWdlRWRpdGlvbjIwMjMSCQoBYxgBIAEoBSIaCg1Hcm91cExpa2VUeXBlEgkKAWMYASABKAUqSwoWRm9yZWlnbkVudW1FZGl0aW9uMjAyMxIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjphCg9leHRlbnNpb25faW50MzISOC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLlRlc3RBbGxUeXBlc0VkaXRpb24yMDIzGHggASgFUg5leHRlbnNpb25JbnQzMjqVAQoNZ3JvdXBsaWtldHlwZRI4LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuVGVzdEFsbFR5cGVzRWRpdGlvbjIwMjMYeSABKAsyLi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLkdyb3VwTGlrZVR5cGVCBaoBAigCUg1ncm91cGxpa2V0eXBlOpQBCg1kZWxpbWl0ZWRfZXh0EjgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5UZXN0QWxsVHlwZXNFZGl0aW9uMjAyMxh6IAEoCzIuLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMuR3JvdXBMaWtlVHlwZUIFqgECKAJSDGRlbGltaXRlZEV4dEI8Ci1jb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbjIwMjNQAaICCEVkaXRpb25zYghlZGl0aW9uc3DoBw"); + +/** + * @generated from message protobuf_test_messages.editions.TestAllTypesEdition2023 + */ +export type TestAllTypesEdition2023 = Message<"protobuf_test_messages.editions.TestAllTypesEdition2023"> & { + /** + * Singular + * + * @generated from field: int32 optional_int32 = 1; + */ + optionalInt32: number; + + /** + * @generated from field: int64 optional_int64 = 2; + */ + optionalInt64: bigint; + + /** + * @generated from field: uint32 optional_uint32 = 3; + */ + optionalUint32: number; + + /** + * @generated from field: uint64 optional_uint64 = 4; + */ + optionalUint64: bigint; + + /** + * @generated from field: sint32 optional_sint32 = 5; + */ + optionalSint32: number; + + /** + * @generated from field: sint64 optional_sint64 = 6; + */ + optionalSint64: bigint; + + /** + * @generated from field: fixed32 optional_fixed32 = 7; + */ + optionalFixed32: number; + + /** + * @generated from field: fixed64 optional_fixed64 = 8; + */ + optionalFixed64: bigint; + + /** + * @generated from field: sfixed32 optional_sfixed32 = 9; + */ + optionalSfixed32: number; + + /** + * @generated from field: sfixed64 optional_sfixed64 = 10; + */ + optionalSfixed64: bigint; + + /** + * @generated from field: float optional_float = 11; + */ + optionalFloat: number; + + /** + * @generated from field: double optional_double = 12; + */ + optionalDouble: number; + + /** + * @generated from field: bool optional_bool = 13; + */ + optionalBool: boolean; + + /** + * @generated from field: string optional_string = 14; + */ + optionalString: string; + + /** + * @generated from field: bytes optional_bytes = 15; + */ + optionalBytes: Uint8Array; + + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage optional_nested_message = 18; + */ + optionalNestedMessage?: TestAllTypesEdition2023_NestedMessage; + + /** + * @generated from field: protobuf_test_messages.editions.ForeignMessageEdition2023 optional_foreign_message = 19; + */ + optionalForeignMessage?: ForeignMessageEdition2023; + + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum optional_nested_enum = 21; + */ + optionalNestedEnum: TestAllTypesEdition2023_NestedEnum; + + /** + * @generated from field: protobuf_test_messages.editions.ForeignEnumEdition2023 optional_foreign_enum = 22; + */ + optionalForeignEnum: ForeignEnumEdition2023; + + /** + * @generated from field: string optional_string_piece = 24; + */ + optionalStringPiece: string; + + /** + * @generated from field: string optional_cord = 25; + */ + optionalCord: string; + + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023 recursive_message = 27; + */ + recursiveMessage?: TestAllTypesEdition2023; + + /** + * Repeated + * + * @generated from field: repeated int32 repeated_int32 = 31; + */ + repeatedInt32: number[]; + + /** + * @generated from field: repeated int64 repeated_int64 = 32; + */ + repeatedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 repeated_uint32 = 33; + */ + repeatedUint32: number[]; + + /** + * @generated from field: repeated uint64 repeated_uint64 = 34; + */ + repeatedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 repeated_sint32 = 35; + */ + repeatedSint32: number[]; + + /** + * @generated from field: repeated sint64 repeated_sint64 = 36; + */ + repeatedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 repeated_fixed32 = 37; + */ + repeatedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 repeated_fixed64 = 38; + */ + repeatedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; + */ + repeatedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; + */ + repeatedSfixed64: bigint[]; + + /** + * @generated from field: repeated float repeated_float = 41; + */ + repeatedFloat: number[]; + + /** + * @generated from field: repeated double repeated_double = 42; + */ + repeatedDouble: number[]; + + /** + * @generated from field: repeated bool repeated_bool = 43; + */ + repeatedBool: boolean[]; + + /** + * @generated from field: repeated string repeated_string = 44; + */ + repeatedString: string[]; + + /** + * @generated from field: repeated bytes repeated_bytes = 45; + */ + repeatedBytes: Uint8Array[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage repeated_nested_message = 48; + */ + repeatedNestedMessage: TestAllTypesEdition2023_NestedMessage[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.ForeignMessageEdition2023 repeated_foreign_message = 49; + */ + repeatedForeignMessage: ForeignMessageEdition2023[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum repeated_nested_enum = 51; + */ + repeatedNestedEnum: TestAllTypesEdition2023_NestedEnum[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.ForeignEnumEdition2023 repeated_foreign_enum = 52; + */ + repeatedForeignEnum: ForeignEnumEdition2023[]; + + /** + * @generated from field: repeated string repeated_string_piece = 54; + */ + repeatedStringPiece: string[]; + + /** + * @generated from field: repeated string repeated_cord = 55; + */ + repeatedCord: string[]; + + /** + * Packed + * + * @generated from field: repeated int32 packed_int32 = 75; + */ + packedInt32: number[]; + + /** + * @generated from field: repeated int64 packed_int64 = 76; + */ + packedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 packed_uint32 = 77; + */ + packedUint32: number[]; + + /** + * @generated from field: repeated uint64 packed_uint64 = 78; + */ + packedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 packed_sint32 = 79; + */ + packedSint32: number[]; + + /** + * @generated from field: repeated sint64 packed_sint64 = 80; + */ + packedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 packed_fixed32 = 81; + */ + packedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 packed_fixed64 = 82; + */ + packedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 packed_sfixed32 = 83; + */ + packedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 packed_sfixed64 = 84; + */ + packedSfixed64: bigint[]; + + /** + * @generated from field: repeated float packed_float = 85; + */ + packedFloat: number[]; + + /** + * @generated from field: repeated double packed_double = 86; + */ + packedDouble: number[]; + + /** + * @generated from field: repeated bool packed_bool = 87; + */ + packedBool: boolean[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum packed_nested_enum = 88; + */ + packedNestedEnum: TestAllTypesEdition2023_NestedEnum[]; + + /** + * Unpacked + * + * @generated from field: repeated int32 unpacked_int32 = 89; + */ + unpackedInt32: number[]; + + /** + * @generated from field: repeated int64 unpacked_int64 = 90; + */ + unpackedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 unpacked_uint32 = 91; + */ + unpackedUint32: number[]; + + /** + * @generated from field: repeated uint64 unpacked_uint64 = 92; + */ + unpackedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 unpacked_sint32 = 93; + */ + unpackedSint32: number[]; + + /** + * @generated from field: repeated sint64 unpacked_sint64 = 94; + */ + unpackedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 unpacked_fixed32 = 95; + */ + unpackedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 unpacked_fixed64 = 96; + */ + unpackedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 unpacked_sfixed32 = 97; + */ + unpackedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 unpacked_sfixed64 = 98; + */ + unpackedSfixed64: bigint[]; + + /** + * @generated from field: repeated float unpacked_float = 99; + */ + unpackedFloat: number[]; + + /** + * @generated from field: repeated double unpacked_double = 100; + */ + unpackedDouble: number[]; + + /** + * @generated from field: repeated bool unpacked_bool = 101; + */ + unpackedBool: boolean[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum unpacked_nested_enum = 102; + */ + unpackedNestedEnum: TestAllTypesEdition2023_NestedEnum[]; + + /** + * Map + * + * @generated from field: map map_int32_int32 = 56; + */ + mapInt32Int32: { [key: number]: number }; + + /** + * @generated from field: map map_int64_int64 = 57; + */ + mapInt64Int64: { [key: string]: bigint }; + + /** + * @generated from field: map map_uint32_uint32 = 58; + */ + mapUint32Uint32: { [key: number]: number }; + + /** + * @generated from field: map map_uint64_uint64 = 59; + */ + mapUint64Uint64: { [key: string]: bigint }; + + /** + * @generated from field: map map_sint32_sint32 = 60; + */ + mapSint32Sint32: { [key: number]: number }; + + /** + * @generated from field: map map_sint64_sint64 = 61; + */ + mapSint64Sint64: { [key: string]: bigint }; + + /** + * @generated from field: map map_fixed32_fixed32 = 62; + */ + mapFixed32Fixed32: { [key: number]: number }; + + /** + * @generated from field: map map_fixed64_fixed64 = 63; + */ + mapFixed64Fixed64: { [key: string]: bigint }; + + /** + * @generated from field: map map_sfixed32_sfixed32 = 64; + */ + mapSfixed32Sfixed32: { [key: number]: number }; + + /** + * @generated from field: map map_sfixed64_sfixed64 = 65; + */ + mapSfixed64Sfixed64: { [key: string]: bigint }; + + /** + * @generated from field: map map_int32_float = 66; + */ + mapInt32Float: { [key: number]: number }; + + /** + * @generated from field: map map_int32_double = 67; + */ + mapInt32Double: { [key: number]: number }; + + /** + * @generated from field: map map_bool_bool = 68; + */ + mapBoolBool: { [key: string]: boolean }; + + /** + * @generated from field: map map_string_string = 69; + */ + mapStringString: { [key: string]: string }; + + /** + * @generated from field: map map_string_bytes = 70; + */ + mapStringBytes: { [key: string]: Uint8Array }; + + /** + * @generated from field: map map_string_nested_message = 71; + */ + mapStringNestedMessage: { [key: string]: TestAllTypesEdition2023_NestedMessage }; + + /** + * @generated from field: map map_string_foreign_message = 72; + */ + mapStringForeignMessage: { [key: string]: ForeignMessageEdition2023 }; + + /** + * @generated from field: map map_string_nested_enum = 73; + */ + mapStringNestedEnum: { [key: string]: TestAllTypesEdition2023_NestedEnum }; + + /** + * @generated from field: map map_string_foreign_enum = 74; + */ + mapStringForeignEnum: { [key: string]: ForeignEnumEdition2023 }; + + /** + * @generated from oneof protobuf_test_messages.editions.TestAllTypesEdition2023.oneof_field + */ + oneofField: { + /** + * @generated from field: uint32 oneof_uint32 = 111; + */ + value: number; + case: "oneofUint32"; + } | { + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage oneof_nested_message = 112; + */ + value: TestAllTypesEdition2023_NestedMessage; + case: "oneofNestedMessage"; + } | { + /** + * @generated from field: string oneof_string = 113; + */ + value: string; + case: "oneofString"; + } | { + /** + * @generated from field: bytes oneof_bytes = 114; + */ + value: Uint8Array; + case: "oneofBytes"; + } | { + /** + * @generated from field: bool oneof_bool = 115; + */ + value: boolean; + case: "oneofBool"; + } | { + /** + * @generated from field: uint64 oneof_uint64 = 116; + */ + value: bigint; + case: "oneofUint64"; + } | { + /** + * @generated from field: float oneof_float = 117; + */ + value: number; + case: "oneofFloat"; + } | { + /** + * @generated from field: double oneof_double = 118; + */ + value: number; + case: "oneofDouble"; + } | { + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum oneof_enum = 119; + */ + value: TestAllTypesEdition2023_NestedEnum; + case: "oneofEnum"; + } | { case: undefined; value?: undefined }; + + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType groupliketype = 201; + */ + groupliketype?: TestAllTypesEdition2023_GroupLikeType; + + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType delimited_field = 202; + */ + delimitedField?: TestAllTypesEdition2023_GroupLikeType; +}; + +// Describes the message protobuf_test_messages.editions.TestAllTypesEdition2023. +// Use `create(TestAllTypesEdition2023Desc)` to create a new TestAllTypesEdition2023. +export const TestAllTypesEdition2023Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_edition2023, 0); + +/** + * @generated from message protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage + */ +export type TestAllTypesEdition2023_NestedMessage = Message<"protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage"> & { + /** + * @generated from field: int32 a = 1; + */ + a: number; + + /** + * @generated from field: protobuf_test_messages.editions.TestAllTypesEdition2023 corecursive = 2; + */ + corecursive?: TestAllTypesEdition2023; +}; + +// Describes the message protobuf_test_messages.editions.TestAllTypesEdition2023.NestedMessage. +// Use `create(TestAllTypesEdition2023_NestedMessageDesc)` to create a new TestAllTypesEdition2023_NestedMessage. +export const TestAllTypesEdition2023_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_edition2023, 0, 0); + +/** + * groups + * + * @generated from message protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType + */ +export type TestAllTypesEdition2023_GroupLikeType = Message<"protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType"> & { + /** + * @generated from field: int32 group_int32 = 202; + */ + groupInt32: number; + + /** + * @generated from field: uint32 group_uint32 = 203; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.editions.TestAllTypesEdition2023.GroupLikeType. +// Use `create(TestAllTypesEdition2023_GroupLikeTypeDesc)` to create a new TestAllTypesEdition2023_GroupLikeType. +export const TestAllTypesEdition2023_GroupLikeTypeDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_edition2023, 0, 1); + +/** + * @generated from enum protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum + */ +export enum TestAllTypesEdition2023_NestedEnum { + /** + * @generated from enum value: FOO = 0; + */ + FOO = 0, + + /** + * @generated from enum value: BAR = 1; + */ + BAR = 1, + + /** + * @generated from enum value: BAZ = 2; + */ + BAZ = 2, + + /** + * Intentionally negative. + * + * @generated from enum value: NEG = -1; + */ + NEG = -1, +} + +// Describes the enum protobuf_test_messages.editions.TestAllTypesEdition2023.NestedEnum. +export const TestAllTypesEdition2023_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_edition2023, 0, 0); + +/** + * @generated from message protobuf_test_messages.editions.ForeignMessageEdition2023 + */ +export type ForeignMessageEdition2023 = Message<"protobuf_test_messages.editions.ForeignMessageEdition2023"> & { + /** + * @generated from field: int32 c = 1; + */ + c: number; +}; + +// Describes the message protobuf_test_messages.editions.ForeignMessageEdition2023. +// Use `create(ForeignMessageEdition2023Desc)` to create a new ForeignMessageEdition2023. +export const ForeignMessageEdition2023Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_edition2023, 1); + +/** + * @generated from message protobuf_test_messages.editions.GroupLikeType + */ +export type GroupLikeType = Message<"protobuf_test_messages.editions.GroupLikeType"> & { + /** + * @generated from field: int32 c = 1; + */ + c: number; +}; + +// Describes the message protobuf_test_messages.editions.GroupLikeType. +// Use `create(GroupLikeTypeDesc)` to create a new GroupLikeType. +export const GroupLikeTypeDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_edition2023, 2); + +/** + * @generated from enum protobuf_test_messages.editions.ForeignEnumEdition2023 + */ +export enum ForeignEnumEdition2023 { + /** + * @generated from enum value: FOREIGN_FOO = 0; + */ + FOREIGN_FOO = 0, + + /** + * @generated from enum value: FOREIGN_BAR = 1; + */ + FOREIGN_BAR = 1, + + /** + * @generated from enum value: FOREIGN_BAZ = 2; + */ + FOREIGN_BAZ = 2, +} + +// Describes the enum protobuf_test_messages.editions.ForeignEnumEdition2023. +export const ForeignEnumEdition2023Desc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_edition2023, 0); + +/** + * @generated from extension: int32 extension_int32 = 120; + */ +export const extension_int32: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_edition2023, 0); + +/** + * @generated from extension: protobuf_test_messages.editions.GroupLikeType groupliketype = 121; + */ +export const groupliketype: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_edition2023, 1); + +/** + * @generated from extension: protobuf_test_messages.editions.GroupLikeType delimited_ext = 122; + */ +export const delimited_ext: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_edition2023, 2); + diff --git a/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto2_editions_pb.ts b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto2_editions_pb.ts new file mode 100644 index 000000000..ca58a490a --- /dev/null +++ b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto2_editions_pb.ts @@ -0,0 +1,1441 @@ +// Copyright 2021-2024 Buf Technologies, Inc. +// +// 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. + +// LINT: ALLOW_GROUPS + +// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" +// @generated from file google/protobuf/test_messages_proto2_editions.proto (package protobuf_test_messages.editions.proto2, edition 2023) +/* eslint-disable */ + +import type { GenDescEnum, GenDescExtension, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; +import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; +import type { Message } from "@bufbuild/protobuf"; + +export const fileDesc_google_protobuf_test_messages_proto2_editions: GenDescFile = /*@__PURE__*/ + fileDesc("CjNnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzJfZWRpdGlvbnMucHJvdG8SJnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yIpxDChJUZXN0QWxsVHlwZXNQcm90bzISFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSaQoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJeChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJjChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtElgKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESVQoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyOi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzISFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSaQoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJeChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJjChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtElgKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGwoMcGFja2VkX2ludDMyGEsgAygFQgWqAQIYARIbCgxwYWNrZWRfaW50NjQYTCADKANCBaoBAhgBEhwKDXBhY2tlZF91aW50MzIYTSADKA1CBaoBAhgBEhwKDXBhY2tlZF91aW50NjQYTiADKARCBaoBAhgBEhwKDXBhY2tlZF9zaW50MzIYTyADKBFCBaoBAhgBEhwKDXBhY2tlZF9zaW50NjQYUCADKBJCBaoBAhgBEh0KDnBhY2tlZF9maXhlZDMyGFEgAygHQgWqAQIYARIdCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkIFqgECGAESHgoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgWqAQIYARIeCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCBaoBAhgBEhsKDHBhY2tlZF9mbG9hdBhVIAMoAkIFqgECGAESHAoNcGFja2VkX2RvdWJsZRhWIAMoAUIFqgECGAESGgoLcGFja2VkX2Jvb2wYVyADKAhCBaoBAhgBEmgKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgWqAQIYARIWCg51bnBhY2tlZF9pbnQzMhhZIAMoBRIWCg51bnBhY2tlZF9pbnQ2NBhaIAMoAxIXCg91bnBhY2tlZF91aW50MzIYWyADKA0SFwoPdW5wYWNrZWRfdWludDY0GFwgAygEEhcKD3VucGFja2VkX3NpbnQzMhhdIAMoERIXCg91bnBhY2tlZF9zaW50NjQYXiADKBISGAoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoBxIYChB1bnBhY2tlZF9maXhlZDY0GGAgAygGEhkKEXVucGFja2VkX3NmaXhlZDMyGGEgAygPEhkKEXVucGFja2VkX3NmaXhlZDY0GGIgAygQEhYKDnVucGFja2VkX2Zsb2F0GGMgAygCEhcKD3VucGFja2VkX2RvdWJsZRhkIAMoARIVCg11bnBhY2tlZF9ib29sGGUgAygIEmMKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW0SZgoPbWFwX2ludDMyX2ludDMyGDggAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMySW50MzJFbnRyeRJmCg9tYXBfaW50NjRfaW50NjQYOSADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50NjRJbnQ2NEVudHJ5EmoKEW1hcF91aW50MzJfdWludDMyGDogAygLMk8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQzMlVpbnQzMkVudHJ5EmoKEW1hcF91aW50NjRfdWludDY0GDsgAygLMk8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5EmoKEW1hcF9zaW50MzJfc2ludDMyGDwgAygLMk8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQzMlNpbnQzMkVudHJ5EmoKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMk8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Em4KE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsyUS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRJuChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMlEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEZpeGVkNjRGaXhlZDY0RW50cnkScgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMlMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRJyChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYQSADKAsyUy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EmYKD21hcF9pbnQzMl9mbG9hdBhCIAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkZsb2F0RW50cnkSaAoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkRvdWJsZUVudHJ5EmIKDW1hcF9ib29sX2Jvb2wYRCADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwQm9vbEJvb2xFbnRyeRJqChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJPLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdTdHJpbmdFbnRyeRJoChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0J5dGVzRW50cnkSeQoZbWFwX3N0cmluZ19uZXN0ZWRfbWVzc2FnZRhHIAMoCzJWLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSewoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyVy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRJzChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMlMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRJ1ChdtYXBfc3RyaW5nX2ZvcmVpZ25fZW51bRhKIAMoCzJULnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhYKDG9uZW9mX3VpbnQzMhhvIAEoDUgAEmgKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAEhQKCm9uZW9mX2Jvb2wYcyABKAhIABIWCgxvbmVvZl91aW50NjQYdCABKARIABIVCgtvbmVvZl9mbG9hdBh1IAEoAkgAEhYKDG9uZW9mX2RvdWJsZRh2IAEoAUgAElsKCm9uZW9mX2VudW0YdyABKA4yRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUgAElUKBGRhdGEYyQEgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLkRhdGFCBaoBAigCEnMKE211bHRpd29yZGdyb3VwZmllbGQYzAEgASgLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk11bHRpV29yZEdyb3VwRmllbGRCBaoBAigCEiIKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5EiwKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3VpbnQzMhjzASABKA06CjIxMjM0NTY3ODkSLQoOZGVmYXVsdF91aW50NjQY9AEgASgEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3NpbnQzMhj1ASABKBE6Ci0xMjM0NTY3ODkSLQoOZGVmYXVsdF9zaW50NjQY9gEgASgSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIkCg9kZWZhdWx0X2ZpeGVkMzIY9wEgASgHOgoyMTIzNDU2Nzg5Ei4KD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5EiUKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ei8KEGRlZmF1bHRfc2ZpeGVkNjQY+gEgASgQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIdCg1kZWZhdWx0X2Zsb2F0GPsBIAEoAjoFOWUrMDkSHgoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMhIbCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlEiAKDmRlZmF1bHRfc3RyaW5nGP4BIAEoCToHUm9zZWJ1ZBIeCg1kZWZhdWx0X2J5dGVzGP8BIAEoDDoGam9zaHVhEhMKCmZpZWxkbmFtZTEYkQMgASgFEhQKC2ZpZWxkX25hbWUyGJIDIAEoBRIVCgxfZmllbGRfbmFtZTMYkwMgASgFEhYKDWZpZWxkX19uYW1lNF8YlAMgASgFEhQKC2ZpZWxkMG5hbWU1GJUDIAEoBRIWCg1maWVsZF8wX25hbWU2GJYDIAEoBRITCgpmaWVsZE5hbWU3GJcDIAEoBRITCgpGaWVsZE5hbWU4GJgDIAEoBRIUCgtmaWVsZF9OYW1lORiZAyABKAUSFQoMRmllbGRfTmFtZTEwGJoDIAEoBRIVCgxGSUVMRF9OQU1FMTEYmwMgASgFEhUKDEZJRUxEX25hbWUxMhicAyABKAUSFwoOX19maWVsZF9uYW1lMTMYnQMgASgFEhcKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBRIWCg1maWVsZF9fbmFtZTE1GJ8DIAEoBRIWCg1maWVsZF9fTmFtZTE2GKADIAEoBRIXCg5maWVsZF9uYW1lMTdfXxihAyABKAUSFwoORmllbGRfbmFtZTE4X18YogMgASgFGmsKDU5lc3RlZE1lc3NhZ2USCQoBYRgBIAEoBRJPCgtjb3JlY3Vyc2l2ZRgCIAEoCzI6LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMho0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjUKE01hcFN0cmluZ0J5dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ARqHAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJXCgV2YWx1ZRgCIAEoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlOgI4ARp8ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJLCgV2YWx1ZRgCIAEoCzI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yOgI4ARqBAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EgsKA2tleRgBIAEoCRJUCgV2YWx1ZRgCIAEoDjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtOgI4ARp2ChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EgsKA2tleRgBIAEoCRJICgV2YWx1ZRgCIAEoDjI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yOgI4ARozCgREYXRhEhQKC2dyb3VwX2ludDMyGMoBIAEoBRIVCgxncm91cF91aW50MzIYywEgASgNGkIKE011bHRpV29yZEdyb3VwRmllbGQSFAoLZ3JvdXBfaW50MzIYzQEgASgFEhUKDGdyb3VwX3VpbnQzMhjOASABKA0aIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARqHAgobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEgsKA3N0chgZIAEoCTLaAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyVi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGoYCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISCQoBaRgJIAEoBTLbAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMlYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiEKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgkKAWMYASABKAUiNwoKR3JvdXBGaWVsZBITCgtncm91cF9pbnQzMhh6IAEoBRIUCgxncm91cF91aW50MzIYeyABKA0i2gIKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxIXCg5vcHRpb25hbF9pbnQzMhjpByABKAUSGAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCRJVCg5uZXN0ZWRfbWVzc2FnZRjrByABKAsyPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJqCg1vcHRpb25hbGdyb3VwGOwHIAEoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlVua25vd25Ub1Rlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwQgWqAQIoAhIWCg1vcHRpb25hbF9ib29sGO4HIAEoCBIXCg5yZXBlYXRlZF9pbnQzMhjzByADKAUaGgoNT3B0aW9uYWxHcm91cBIJCgFhGAEgASgFIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8yIi8KDkVudW1Pbmx5UHJvdG8yIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASIfCg9PbmVTdHJpbmdQcm90bzISDAoEZGF0YRgBIAEoCSJGChFQcm90b1dpdGhLZXl3b3JkcxIOCgZpbmxpbmUYASABKAUSDwoHY29uY2VwdBgCIAEoCRIQCghyZXF1aXJlcxgDIAMoCSKvFwoaVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISHQoOcmVxdWlyZWRfaW50MzIYASABKAVCBaoBAggDEh0KDnJlcXVpcmVkX2ludDY0GAIgASgDQgWqAQIIAxIeCg9yZXF1aXJlZF91aW50MzIYAyABKA1CBaoBAggDEh4KD3JlcXVpcmVkX3VpbnQ2NBgEIAEoBEIFqgECCAMSHgoPcmVxdWlyZWRfc2ludDMyGAUgASgRQgWqAQIIAxIeCg9yZXF1aXJlZF9zaW50NjQYBiABKBJCBaoBAggDEh8KEHJlcXVpcmVkX2ZpeGVkMzIYByABKAdCBaoBAggDEh8KEHJlcXVpcmVkX2ZpeGVkNjQYCCABKAZCBaoBAggDEiAKEXJlcXVpcmVkX3NmaXhlZDMyGAkgASgPQgWqAQIIAxIgChFyZXF1aXJlZF9zZml4ZWQ2NBgKIAEoEEIFqgECCAMSHQoOcmVxdWlyZWRfZmxvYXQYCyABKAJCBaoBAggDEh4KD3JlcXVpcmVkX2RvdWJsZRgMIAEoAUIFqgECCAMSHAoNcmVxdWlyZWRfYm9vbBgNIAEoCEIFqgECCAMSHgoPcmVxdWlyZWRfc3RyaW5nGA4gASgJQgWqAQIIAxIdCg5yZXF1aXJlZF9ieXRlcxgPIAEoDEIFqgECCAMSeAoXcmVxdWlyZWRfbmVzdGVkX21lc3NhZ2UYEiABKAsyUC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlQgWqAQIIAxJlChhyZXF1aXJlZF9mb3JlaWduX21lc3NhZ2UYEyABKAsyPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMkIFqgECCAMScgoUcmVxdWlyZWRfbmVzdGVkX2VudW0YFSABKA4yTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgWqAQIIAxJfChVyZXF1aXJlZF9mb3JlaWduX2VudW0YFiABKA4yOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMkIFqgECCAMSJgoVcmVxdWlyZWRfc3RyaW5nX3BpZWNlGBggASgJQgcIAqoBAggDEh4KDXJlcXVpcmVkX2NvcmQYGSABKAlCBwgBqgECCAMSZAoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMkIFqgECCAMSZgoab3B0aW9uYWxfcmVjdXJzaXZlX21lc3NhZ2UYHCABKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhJfCgRkYXRhGMkBIAEoCzJHLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLkRhdGFCB6oBBAgDKAISKQoNZGVmYXVsdF9pbnQzMhjxASABKAU6Ci0xMjM0NTY3ODlCBaoBAggDEjMKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OUIFqgECCAMSKgoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5QgWqAQIIAxI0Cg5kZWZhdWx0X3VpbnQ2NBj0ASABKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5QgWqAQIIAxIqCg5kZWZhdWx0X3NpbnQzMhj1ASABKBE6Ci0xMjM0NTY3ODlCBaoBAggDEjQKDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODlCBaoBAggDEisKD2RlZmF1bHRfZml4ZWQzMhj3ASABKAc6CjIxMjM0NTY3ODlCBaoBAggDEjUKD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5QgWqAQIIAxIsChBkZWZhdWx0X3NmaXhlZDMyGPkBIAEoDzoKLTEyMzQ1Njc4OUIFqgECCAMSNgoQZGVmYXVsdF9zZml4ZWQ2NBj6ASABKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5QgWqAQIIAxIkCg1kZWZhdWx0X2Zsb2F0GPsBIAEoAjoFOWUrMDlCBaoBAggDEiUKDmRlZmF1bHRfZG91YmxlGPwBIAEoAToFN2UrMjJCBaoBAggDEiIKDGRlZmF1bHRfYm9vbBj9ASABKAg6BHRydWVCBaoBAggDEicKDmRlZmF1bHRfc3RyaW5nGP4BIAEoCToHUm9zZWJ1ZEIFqgECCAMSJQoNZGVmYXVsdF9ieXRlcxj/ASABKAw6Bmpvc2h1YUIFqgECCAMa4wEKDU5lc3RlZE1lc3NhZ2USEAoBYRgBIAEoBUIFqgECCAMSXgoLY29yZWN1cnNpdmUYAiABKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMkIFqgECCAMSYAoUb3B0aW9uYWxfY29yZWN1cnNpdmUYAyABKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhpBCgREYXRhEhsKC2dyb3VwX2ludDMyGMoBIAEoBUIFqgECCAMSHAoMZ3JvdXBfdWludDMyGMsBIAEoDUIFqgECCAMaIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARqeAgobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEhIKA3N0chgZIAEoCUIFqgECCAMy6gEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJULnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyXi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjFSE21lc3NhZ2VTZXRFeHRlbnNpb24anQIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMhIQCgFpGAkgASgFQgWqAQIIAzLrAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uElQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyXi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFKBgjoBxCQTipGChFGb3JlaWduRW51bVByb3RvMhIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjpjCg9leHRlbnNpb25faW50MzISOi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeCABKAVSDmV4dGVuc2lvbkludDMyOpUBCgpncm91cGZpZWxkEjoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yGHkgASgLMjIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzIuR3JvdXBGaWVsZEIFqgECKAJSCmdyb3VwZmllbGRCTwoxY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMkgBogIORWRpdGlvbnNQcm90bzKSAwYQAhgCIANiCGVkaXRpb25zcOgH"); + +/** + * This proto includes every type of field in both singular and repeated + * forms. + * + * Also, crucially, all messages and enums in this file are eventually + * submessages of this message. So for example, a fuzz test of TestAllTypes + * could trigger bugs that occur in any message type in this file. We verify + * this stays true in a unit test. + * + * @generated from message protobuf_test_messages.editions.proto2.TestAllTypesProto2 + */ +export type TestAllTypesProto2 = Message<"protobuf_test_messages.editions.proto2.TestAllTypesProto2"> & { + /** + * Singular + * + * @generated from field: int32 optional_int32 = 1; + */ + optionalInt32: number; + + /** + * @generated from field: int64 optional_int64 = 2; + */ + optionalInt64: bigint; + + /** + * @generated from field: uint32 optional_uint32 = 3; + */ + optionalUint32: number; + + /** + * @generated from field: uint64 optional_uint64 = 4; + */ + optionalUint64: bigint; + + /** + * @generated from field: sint32 optional_sint32 = 5; + */ + optionalSint32: number; + + /** + * @generated from field: sint64 optional_sint64 = 6; + */ + optionalSint64: bigint; + + /** + * @generated from field: fixed32 optional_fixed32 = 7; + */ + optionalFixed32: number; + + /** + * @generated from field: fixed64 optional_fixed64 = 8; + */ + optionalFixed64: bigint; + + /** + * @generated from field: sfixed32 optional_sfixed32 = 9; + */ + optionalSfixed32: number; + + /** + * @generated from field: sfixed64 optional_sfixed64 = 10; + */ + optionalSfixed64: bigint; + + /** + * @generated from field: float optional_float = 11; + */ + optionalFloat: number; + + /** + * @generated from field: double optional_double = 12; + */ + optionalDouble: number; + + /** + * @generated from field: bool optional_bool = 13; + */ + optionalBool: boolean; + + /** + * @generated from field: string optional_string = 14; + */ + optionalString: string; + + /** + * @generated from field: bytes optional_bytes = 15; + */ + optionalBytes: Uint8Array; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage optional_nested_message = 18; + */ + optionalNestedMessage?: TestAllTypesProto2_NestedMessage; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.ForeignMessageProto2 optional_foreign_message = 19; + */ + optionalForeignMessage?: ForeignMessageProto2; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum optional_nested_enum = 21; + */ + optionalNestedEnum: TestAllTypesProto2_NestedEnum; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.ForeignEnumProto2 optional_foreign_enum = 22; + */ + optionalForeignEnum: ForeignEnumProto2; + + /** + * @generated from field: string optional_string_piece = 24; + */ + optionalStringPiece: string; + + /** + * @generated from field: string optional_cord = 25; + */ + optionalCord: string; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2 recursive_message = 27; + */ + recursiveMessage?: TestAllTypesProto2; + + /** + * Repeated + * + * @generated from field: repeated int32 repeated_int32 = 31; + */ + repeatedInt32: number[]; + + /** + * @generated from field: repeated int64 repeated_int64 = 32; + */ + repeatedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 repeated_uint32 = 33; + */ + repeatedUint32: number[]; + + /** + * @generated from field: repeated uint64 repeated_uint64 = 34; + */ + repeatedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 repeated_sint32 = 35; + */ + repeatedSint32: number[]; + + /** + * @generated from field: repeated sint64 repeated_sint64 = 36; + */ + repeatedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 repeated_fixed32 = 37; + */ + repeatedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 repeated_fixed64 = 38; + */ + repeatedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; + */ + repeatedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; + */ + repeatedSfixed64: bigint[]; + + /** + * @generated from field: repeated float repeated_float = 41; + */ + repeatedFloat: number[]; + + /** + * @generated from field: repeated double repeated_double = 42; + */ + repeatedDouble: number[]; + + /** + * @generated from field: repeated bool repeated_bool = 43; + */ + repeatedBool: boolean[]; + + /** + * @generated from field: repeated string repeated_string = 44; + */ + repeatedString: string[]; + + /** + * @generated from field: repeated bytes repeated_bytes = 45; + */ + repeatedBytes: Uint8Array[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage repeated_nested_message = 48; + */ + repeatedNestedMessage: TestAllTypesProto2_NestedMessage[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto2.ForeignMessageProto2 repeated_foreign_message = 49; + */ + repeatedForeignMessage: ForeignMessageProto2[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum repeated_nested_enum = 51; + */ + repeatedNestedEnum: TestAllTypesProto2_NestedEnum[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto2.ForeignEnumProto2 repeated_foreign_enum = 52; + */ + repeatedForeignEnum: ForeignEnumProto2[]; + + /** + * @generated from field: repeated string repeated_string_piece = 54; + */ + repeatedStringPiece: string[]; + + /** + * @generated from field: repeated string repeated_cord = 55; + */ + repeatedCord: string[]; + + /** + * Packed + * + * @generated from field: repeated int32 packed_int32 = 75; + */ + packedInt32: number[]; + + /** + * @generated from field: repeated int64 packed_int64 = 76; + */ + packedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 packed_uint32 = 77; + */ + packedUint32: number[]; + + /** + * @generated from field: repeated uint64 packed_uint64 = 78; + */ + packedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 packed_sint32 = 79; + */ + packedSint32: number[]; + + /** + * @generated from field: repeated sint64 packed_sint64 = 80; + */ + packedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 packed_fixed32 = 81; + */ + packedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 packed_fixed64 = 82; + */ + packedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 packed_sfixed32 = 83; + */ + packedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 packed_sfixed64 = 84; + */ + packedSfixed64: bigint[]; + + /** + * @generated from field: repeated float packed_float = 85; + */ + packedFloat: number[]; + + /** + * @generated from field: repeated double packed_double = 86; + */ + packedDouble: number[]; + + /** + * @generated from field: repeated bool packed_bool = 87; + */ + packedBool: boolean[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum packed_nested_enum = 88; + */ + packedNestedEnum: TestAllTypesProto2_NestedEnum[]; + + /** + * Unpacked + * + * @generated from field: repeated int32 unpacked_int32 = 89; + */ + unpackedInt32: number[]; + + /** + * @generated from field: repeated int64 unpacked_int64 = 90; + */ + unpackedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 unpacked_uint32 = 91; + */ + unpackedUint32: number[]; + + /** + * @generated from field: repeated uint64 unpacked_uint64 = 92; + */ + unpackedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 unpacked_sint32 = 93; + */ + unpackedSint32: number[]; + + /** + * @generated from field: repeated sint64 unpacked_sint64 = 94; + */ + unpackedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 unpacked_fixed32 = 95; + */ + unpackedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 unpacked_fixed64 = 96; + */ + unpackedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 unpacked_sfixed32 = 97; + */ + unpackedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 unpacked_sfixed64 = 98; + */ + unpackedSfixed64: bigint[]; + + /** + * @generated from field: repeated float unpacked_float = 99; + */ + unpackedFloat: number[]; + + /** + * @generated from field: repeated double unpacked_double = 100; + */ + unpackedDouble: number[]; + + /** + * @generated from field: repeated bool unpacked_bool = 101; + */ + unpackedBool: boolean[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum unpacked_nested_enum = 102; + */ + unpackedNestedEnum: TestAllTypesProto2_NestedEnum[]; + + /** + * Map + * + * @generated from field: map map_int32_int32 = 56; + */ + mapInt32Int32: { [key: number]: number }; + + /** + * @generated from field: map map_int64_int64 = 57; + */ + mapInt64Int64: { [key: string]: bigint }; + + /** + * @generated from field: map map_uint32_uint32 = 58; + */ + mapUint32Uint32: { [key: number]: number }; + + /** + * @generated from field: map map_uint64_uint64 = 59; + */ + mapUint64Uint64: { [key: string]: bigint }; + + /** + * @generated from field: map map_sint32_sint32 = 60; + */ + mapSint32Sint32: { [key: number]: number }; + + /** + * @generated from field: map map_sint64_sint64 = 61; + */ + mapSint64Sint64: { [key: string]: bigint }; + + /** + * @generated from field: map map_fixed32_fixed32 = 62; + */ + mapFixed32Fixed32: { [key: number]: number }; + + /** + * @generated from field: map map_fixed64_fixed64 = 63; + */ + mapFixed64Fixed64: { [key: string]: bigint }; + + /** + * @generated from field: map map_sfixed32_sfixed32 = 64; + */ + mapSfixed32Sfixed32: { [key: number]: number }; + + /** + * @generated from field: map map_sfixed64_sfixed64 = 65; + */ + mapSfixed64Sfixed64: { [key: string]: bigint }; + + /** + * @generated from field: map map_int32_float = 66; + */ + mapInt32Float: { [key: number]: number }; + + /** + * @generated from field: map map_int32_double = 67; + */ + mapInt32Double: { [key: number]: number }; + + /** + * @generated from field: map map_bool_bool = 68; + */ + mapBoolBool: { [key: string]: boolean }; + + /** + * @generated from field: map map_string_string = 69; + */ + mapStringString: { [key: string]: string }; + + /** + * @generated from field: map map_string_bytes = 70; + */ + mapStringBytes: { [key: string]: Uint8Array }; + + /** + * @generated from field: map map_string_nested_message = 71; + */ + mapStringNestedMessage: { [key: string]: TestAllTypesProto2_NestedMessage }; + + /** + * @generated from field: map map_string_foreign_message = 72; + */ + mapStringForeignMessage: { [key: string]: ForeignMessageProto2 }; + + /** + * @generated from field: map map_string_nested_enum = 73; + */ + mapStringNestedEnum: { [key: string]: TestAllTypesProto2_NestedEnum }; + + /** + * @generated from field: map map_string_foreign_enum = 74; + */ + mapStringForeignEnum: { [key: string]: ForeignEnumProto2 }; + + /** + * @generated from oneof protobuf_test_messages.editions.proto2.TestAllTypesProto2.oneof_field + */ + oneofField: { + /** + * @generated from field: uint32 oneof_uint32 = 111; + */ + value: number; + case: "oneofUint32"; + } | { + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage oneof_nested_message = 112; + */ + value: TestAllTypesProto2_NestedMessage; + case: "oneofNestedMessage"; + } | { + /** + * @generated from field: string oneof_string = 113; + */ + value: string; + case: "oneofString"; + } | { + /** + * @generated from field: bytes oneof_bytes = 114; + */ + value: Uint8Array; + case: "oneofBytes"; + } | { + /** + * @generated from field: bool oneof_bool = 115; + */ + value: boolean; + case: "oneofBool"; + } | { + /** + * @generated from field: uint64 oneof_uint64 = 116; + */ + value: bigint; + case: "oneofUint64"; + } | { + /** + * @generated from field: float oneof_float = 117; + */ + value: number; + case: "oneofFloat"; + } | { + /** + * @generated from field: double oneof_double = 118; + */ + value: number; + case: "oneofDouble"; + } | { + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum oneof_enum = 119; + */ + value: TestAllTypesProto2_NestedEnum; + case: "oneofEnum"; + } | { case: undefined; value?: undefined }; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2.Data data = 201; + */ + data?: TestAllTypesProto2_Data; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MultiWordGroupField multiwordgroupfield = 204; + */ + multiwordgroupfield?: TestAllTypesProto2_MultiWordGroupField; + + /** + * default values + * + * @generated from field: int32 default_int32 = 241 [default = -123456789]; + */ + defaultInt32: number; + + /** + * @generated from field: int64 default_int64 = 242 [default = -9123456789123456789]; + */ + defaultInt64: bigint; + + /** + * @generated from field: uint32 default_uint32 = 243 [default = 2123456789]; + */ + defaultUint32: number; + + /** + * @generated from field: uint64 default_uint64 = 244 [default = 10123456789123456789]; + */ + defaultUint64: bigint; + + /** + * @generated from field: sint32 default_sint32 = 245 [default = -123456789]; + */ + defaultSint32: number; + + /** + * @generated from field: sint64 default_sint64 = 246 [default = -9123456789123456789]; + */ + defaultSint64: bigint; + + /** + * @generated from field: fixed32 default_fixed32 = 247 [default = 2123456789]; + */ + defaultFixed32: number; + + /** + * @generated from field: fixed64 default_fixed64 = 248 [default = 10123456789123456789]; + */ + defaultFixed64: bigint; + + /** + * @generated from field: sfixed32 default_sfixed32 = 249 [default = -123456789]; + */ + defaultSfixed32: number; + + /** + * @generated from field: sfixed64 default_sfixed64 = 250 [default = -9123456789123456789]; + */ + defaultSfixed64: bigint; + + /** + * @generated from field: float default_float = 251 [default = 9e+09]; + */ + defaultFloat: number; + + /** + * @generated from field: double default_double = 252 [default = 7e+22]; + */ + defaultDouble: number; + + /** + * @generated from field: bool default_bool = 253 [default = true]; + */ + defaultBool: boolean; + + /** + * @generated from field: string default_string = 254 [default = "Rosebud"]; + */ + defaultString: string; + + /** + * @generated from field: bytes default_bytes = 255 [default = "joshua"]; + */ + defaultBytes: Uint8Array; + + /** + * Test field-name-to-JSON-name convention. + * (protobuf says names can be any valid C/C++ identifier.) + * + * @generated from field: int32 fieldname1 = 401; + */ + fieldname1: number; + + /** + * @generated from field: int32 field_name2 = 402; + */ + fieldName2: number; + + /** + * @generated from field: int32 _field_name3 = 403; + */ + FieldName3: number; + + /** + * @generated from field: int32 field__name4_ = 404; + */ + fieldName4: number; + + /** + * @generated from field: int32 field0name5 = 405; + */ + field0name5: number; + + /** + * @generated from field: int32 field_0_name6 = 406; + */ + field0Name6: number; + + /** + * @generated from field: int32 fieldName7 = 407; + */ + fieldName7: number; + + /** + * @generated from field: int32 FieldName8 = 408; + */ + FieldName8: number; + + /** + * @generated from field: int32 field_Name9 = 409; + */ + fieldName9: number; + + /** + * @generated from field: int32 Field_Name10 = 410; + */ + FieldName10: number; + + /** + * @generated from field: int32 FIELD_NAME11 = 411; + */ + FIELDNAME11: number; + + /** + * @generated from field: int32 FIELD_name12 = 412; + */ + FIELDName12: number; + + /** + * @generated from field: int32 __field_name13 = 413; + */ + FieldName13: number; + + /** + * @generated from field: int32 __Field_name14 = 414; + */ + FieldName14: number; + + /** + * @generated from field: int32 field__name15 = 415; + */ + fieldName15: number; + + /** + * @generated from field: int32 field__Name16 = 416; + */ + fieldName16: number; + + /** + * @generated from field: int32 field_name17__ = 417; + */ + fieldName17: number; + + /** + * @generated from field: int32 Field_name18__ = 418; + */ + FieldName18: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllTypesProto2. +// Use `create(TestAllTypesProto2Desc)` to create a new TestAllTypesProto2. +export const TestAllTypesProto2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage + */ +export type TestAllTypesProto2_NestedMessage = Message<"protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage"> & { + /** + * @generated from field: int32 a = 1; + */ + a: number; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllTypesProto2 corecursive = 2; + */ + corecursive?: TestAllTypesProto2; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage. +// Use `create(TestAllTypesProto2_NestedMessageDesc)` to create a new TestAllTypesProto2_NestedMessage. +export const TestAllTypesProto2_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 0); + +/** + * groups + * + * @generated from message protobuf_test_messages.editions.proto2.TestAllTypesProto2.Data + */ +export type TestAllTypesProto2_Data = Message<"protobuf_test_messages.editions.proto2.TestAllTypesProto2.Data"> & { + /** + * @generated from field: int32 group_int32 = 202; + */ + groupInt32: number; + + /** + * @generated from field: uint32 group_uint32 = 203; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllTypesProto2.Data. +// Use `create(TestAllTypesProto2_DataDesc)` to create a new TestAllTypesProto2_Data. +export const TestAllTypesProto2_DataDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 1); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MultiWordGroupField + */ +export type TestAllTypesProto2_MultiWordGroupField = Message<"protobuf_test_messages.editions.proto2.TestAllTypesProto2.MultiWordGroupField"> & { + /** + * @generated from field: int32 group_int32 = 205; + */ + groupInt32: number; + + /** + * @generated from field: uint32 group_uint32 = 206; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MultiWordGroupField. +// Use `create(TestAllTypesProto2_MultiWordGroupFieldDesc)` to create a new TestAllTypesProto2_MultiWordGroupField. +export const TestAllTypesProto2_MultiWordGroupFieldDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 2); + +/** + * message_set test case. + * + * @generated from message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect + */ +export type TestAllTypesProto2_MessageSetCorrect = Message<"protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect"> & { +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect. +// Use `create(TestAllTypesProto2_MessageSetCorrectDesc)` to create a new TestAllTypesProto2_MessageSetCorrect. +export const TestAllTypesProto2_MessageSetCorrectDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 3); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 + */ +export type TestAllTypesProto2_MessageSetCorrectExtension1 = Message<"protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1"> & { + /** + * @generated from field: string str = 25; + */ + str: string; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1. +// Use `create(TestAllTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension1. +export const TestAllTypesProto2_MessageSetCorrectExtension1Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 4); + +/** + * @generated from extension: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; + */ +export const TestAllTypesProto2_MessageSetCorrectExtension1_message_set_extension: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 4, 0); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 + */ +export type TestAllTypesProto2_MessageSetCorrectExtension2 = Message<"protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2"> & { + /** + * @generated from field: int32 i = 9; + */ + i: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2. +// Use `create(TestAllTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension2. +export const TestAllTypesProto2_MessageSetCorrectExtension2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 5); + +/** + * @generated from extension: protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; + */ +export const TestAllTypesProto2_MessageSetCorrectExtension2_message_set_extension: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 5, 0); + +/** + * @generated from enum protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum + */ +export enum TestAllTypesProto2_NestedEnum { + /** + * @generated from enum value: FOO = 0; + */ + FOO = 0, + + /** + * @generated from enum value: BAR = 1; + */ + BAR = 1, + + /** + * @generated from enum value: BAZ = 2; + */ + BAZ = 2, + + /** + * Intentionally negative. + * + * @generated from enum value: NEG = -1; + */ + NEG = -1, +} + +// Describes the enum protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum. +export const TestAllTypesProto2_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0, 0); + +/** + * @generated from message protobuf_test_messages.editions.proto2.ForeignMessageProto2 + */ +export type ForeignMessageProto2 = Message<"protobuf_test_messages.editions.proto2.ForeignMessageProto2"> & { + /** + * @generated from field: int32 c = 1; + */ + c: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.ForeignMessageProto2. +// Use `create(ForeignMessageProto2Desc)` to create a new ForeignMessageProto2. +export const ForeignMessageProto2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 1); + +/** + * @generated from message protobuf_test_messages.editions.proto2.GroupField + */ +export type GroupField = Message<"protobuf_test_messages.editions.proto2.GroupField"> & { + /** + * @generated from field: int32 group_int32 = 122; + */ + groupInt32: number; + + /** + * @generated from field: uint32 group_uint32 = 123; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.GroupField. +// Use `create(GroupFieldDesc)` to create a new GroupField. +export const GroupFieldDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 2); + +/** + * @generated from message protobuf_test_messages.editions.proto2.UnknownToTestAllTypes + */ +export type UnknownToTestAllTypes = Message<"protobuf_test_messages.editions.proto2.UnknownToTestAllTypes"> & { + /** + * @generated from field: int32 optional_int32 = 1001; + */ + optionalInt32: number; + + /** + * @generated from field: string optional_string = 1002; + */ + optionalString: string; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.ForeignMessageProto2 nested_message = 1003; + */ + nestedMessage?: ForeignMessageProto2; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup optionalgroup = 1004; + */ + optionalgroup?: UnknownToTestAllTypes_OptionalGroup; + + /** + * @generated from field: bool optional_bool = 1006; + */ + optionalBool: boolean; + + /** + * @generated from field: repeated int32 repeated_int32 = 1011; + */ + repeatedInt32: number[]; +}; + +// Describes the message protobuf_test_messages.editions.proto2.UnknownToTestAllTypes. +// Use `create(UnknownToTestAllTypesDesc)` to create a new UnknownToTestAllTypes. +export const UnknownToTestAllTypesDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 3); + +/** + * @generated from message protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup + */ +export type UnknownToTestAllTypes_OptionalGroup = Message<"protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup"> & { + /** + * @generated from field: int32 a = 1; + */ + a: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup. +// Use `create(UnknownToTestAllTypes_OptionalGroupDesc)` to create a new UnknownToTestAllTypes_OptionalGroup. +export const UnknownToTestAllTypes_OptionalGroupDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 3, 0); + +/** + * @generated from message protobuf_test_messages.editions.proto2.NullHypothesisProto2 + */ +export type NullHypothesisProto2 = Message<"protobuf_test_messages.editions.proto2.NullHypothesisProto2"> & { +}; + +// Describes the message protobuf_test_messages.editions.proto2.NullHypothesisProto2. +// Use `create(NullHypothesisProto2Desc)` to create a new NullHypothesisProto2. +export const NullHypothesisProto2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 4); + +/** + * @generated from message protobuf_test_messages.editions.proto2.EnumOnlyProto2 + */ +export type EnumOnlyProto2 = Message<"protobuf_test_messages.editions.proto2.EnumOnlyProto2"> & { +}; + +// Describes the message protobuf_test_messages.editions.proto2.EnumOnlyProto2. +// Use `create(EnumOnlyProto2Desc)` to create a new EnumOnlyProto2. +export const EnumOnlyProto2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 5); + +/** + * @generated from enum protobuf_test_messages.editions.proto2.EnumOnlyProto2.Bool + */ +export enum EnumOnlyProto2_Bool { + /** + * @generated from enum value: kFalse = 0; + */ + kFalse = 0, + + /** + * @generated from enum value: kTrue = 1; + */ + kTrue = 1, +} + +// Describes the enum protobuf_test_messages.editions.proto2.EnumOnlyProto2.Bool. +export const EnumOnlyProto2_BoolDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 5, 0); + +/** + * @generated from message protobuf_test_messages.editions.proto2.OneStringProto2 + */ +export type OneStringProto2 = Message<"protobuf_test_messages.editions.proto2.OneStringProto2"> & { + /** + * @generated from field: string data = 1; + */ + data: string; +}; + +// Describes the message protobuf_test_messages.editions.proto2.OneStringProto2. +// Use `create(OneStringProto2Desc)` to create a new OneStringProto2. +export const OneStringProto2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 6); + +/** + * @generated from message protobuf_test_messages.editions.proto2.ProtoWithKeywords + */ +export type ProtoWithKeywords = Message<"protobuf_test_messages.editions.proto2.ProtoWithKeywords"> & { + /** + * @generated from field: int32 inline = 1; + */ + inline: number; + + /** + * @generated from field: string concept = 2; + */ + concept: string; + + /** + * @generated from field: repeated string requires = 3; + */ + requires: string[]; +}; + +// Describes the message protobuf_test_messages.editions.proto2.ProtoWithKeywords. +// Use `create(ProtoWithKeywordsDesc)` to create a new ProtoWithKeywords. +export const ProtoWithKeywordsDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 7); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2 + */ +export type TestAllRequiredTypesProto2 = Message<"protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2"> & { + /** + * Singular + * + * @generated from field: int32 required_int32 = 1; + */ + requiredInt32: number; + + /** + * @generated from field: int64 required_int64 = 2; + */ + requiredInt64: bigint; + + /** + * @generated from field: uint32 required_uint32 = 3; + */ + requiredUint32: number; + + /** + * @generated from field: uint64 required_uint64 = 4; + */ + requiredUint64: bigint; + + /** + * @generated from field: sint32 required_sint32 = 5; + */ + requiredSint32: number; + + /** + * @generated from field: sint64 required_sint64 = 6; + */ + requiredSint64: bigint; + + /** + * @generated from field: fixed32 required_fixed32 = 7; + */ + requiredFixed32: number; + + /** + * @generated from field: fixed64 required_fixed64 = 8; + */ + requiredFixed64: bigint; + + /** + * @generated from field: sfixed32 required_sfixed32 = 9; + */ + requiredSfixed32: number; + + /** + * @generated from field: sfixed64 required_sfixed64 = 10; + */ + requiredSfixed64: bigint; + + /** + * @generated from field: float required_float = 11; + */ + requiredFloat: number; + + /** + * @generated from field: double required_double = 12; + */ + requiredDouble: number; + + /** + * @generated from field: bool required_bool = 13; + */ + requiredBool: boolean; + + /** + * @generated from field: string required_string = 14; + */ + requiredString: string; + + /** + * @generated from field: bytes required_bytes = 15; + */ + requiredBytes: Uint8Array; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage required_nested_message = 18; + */ + requiredNestedMessage?: TestAllRequiredTypesProto2_NestedMessage; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.ForeignMessageProto2 required_foreign_message = 19; + */ + requiredForeignMessage?: ForeignMessageProto2; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedEnum required_nested_enum = 21; + */ + requiredNestedEnum: TestAllRequiredTypesProto2_NestedEnum; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.ForeignEnumProto2 required_foreign_enum = 22; + */ + requiredForeignEnum: ForeignEnumProto2; + + /** + * @generated from field: string required_string_piece = 24; + */ + requiredStringPiece: string; + + /** + * @generated from field: string required_cord = 25; + */ + requiredCord: string; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2 recursive_message = 27; + */ + recursiveMessage?: TestAllRequiredTypesProto2; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2 optional_recursive_message = 28; + */ + optionalRecursiveMessage?: TestAllRequiredTypesProto2; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.Data data = 201; + */ + data?: TestAllRequiredTypesProto2_Data; + + /** + * default values + * + * @generated from field: int32 default_int32 = 241 [default = -123456789]; + */ + defaultInt32: number; + + /** + * @generated from field: int64 default_int64 = 242 [default = -9123456789123456789]; + */ + defaultInt64: bigint; + + /** + * @generated from field: uint32 default_uint32 = 243 [default = 2123456789]; + */ + defaultUint32: number; + + /** + * @generated from field: uint64 default_uint64 = 244 [default = 10123456789123456789]; + */ + defaultUint64: bigint; + + /** + * @generated from field: sint32 default_sint32 = 245 [default = -123456789]; + */ + defaultSint32: number; + + /** + * @generated from field: sint64 default_sint64 = 246 [default = -9123456789123456789]; + */ + defaultSint64: bigint; + + /** + * @generated from field: fixed32 default_fixed32 = 247 [default = 2123456789]; + */ + defaultFixed32: number; + + /** + * @generated from field: fixed64 default_fixed64 = 248 [default = 10123456789123456789]; + */ + defaultFixed64: bigint; + + /** + * @generated from field: sfixed32 default_sfixed32 = 249 [default = -123456789]; + */ + defaultSfixed32: number; + + /** + * @generated from field: sfixed64 default_sfixed64 = 250 [default = -9123456789123456789]; + */ + defaultSfixed64: bigint; + + /** + * @generated from field: float default_float = 251 [default = 9e+09]; + */ + defaultFloat: number; + + /** + * @generated from field: double default_double = 252 [default = 7e+22]; + */ + defaultDouble: number; + + /** + * @generated from field: bool default_bool = 253 [default = true]; + */ + defaultBool: boolean; + + /** + * @generated from field: string default_string = 254 [default = "Rosebud"]; + */ + defaultString: string; + + /** + * @generated from field: bytes default_bytes = 255 [default = "joshua"]; + */ + defaultBytes: Uint8Array; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2. +// Use `create(TestAllRequiredTypesProto2Desc)` to create a new TestAllRequiredTypesProto2. +export const TestAllRequiredTypesProto2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage + */ +export type TestAllRequiredTypesProto2_NestedMessage = Message<"protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage"> & { + /** + * @generated from field: int32 a = 1; + */ + a: number; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2 corecursive = 2; + */ + corecursive?: TestAllRequiredTypesProto2; + + /** + * @generated from field: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2 optional_corecursive = 3; + */ + optionalCorecursive?: TestAllRequiredTypesProto2; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage. +// Use `create(TestAllRequiredTypesProto2_NestedMessageDesc)` to create a new TestAllRequiredTypesProto2_NestedMessage. +export const TestAllRequiredTypesProto2_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 0); + +/** + * groups + * + * @generated from message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.Data + */ +export type TestAllRequiredTypesProto2_Data = Message<"protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.Data"> & { + /** + * @generated from field: int32 group_int32 = 202; + */ + groupInt32: number; + + /** + * @generated from field: uint32 group_uint32 = 203; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.Data. +// Use `create(TestAllRequiredTypesProto2_DataDesc)` to create a new TestAllRequiredTypesProto2_Data. +export const TestAllRequiredTypesProto2_DataDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 1); + +/** + * message_set test case. + * + * @generated from message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect + */ +export type TestAllRequiredTypesProto2_MessageSetCorrect = Message<"protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect"> & { +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect. +// Use `create(TestAllRequiredTypesProto2_MessageSetCorrectDesc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrect. +export const TestAllRequiredTypesProto2_MessageSetCorrectDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 2); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 + */ +export type TestAllRequiredTypesProto2_MessageSetCorrectExtension1 = Message<"protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1"> & { + /** + * @generated from field: string str = 25; + */ + str: string; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1. +// Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension1. +export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 3); + +/** + * @generated from extension: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; + */ +export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1_message_set_extension: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 3, 0); + +/** + * @generated from message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 + */ +export type TestAllRequiredTypesProto2_MessageSetCorrectExtension2 = Message<"protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2"> & { + /** + * @generated from field: int32 i = 9; + */ + i: number; +}; + +// Describes the message protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2. +// Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension2. +export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 4); + +/** + * @generated from extension: protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; + */ +export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2_message_set_extension: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 4, 0); + +/** + * @generated from enum protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedEnum + */ +export enum TestAllRequiredTypesProto2_NestedEnum { + /** + * @generated from enum value: FOO = 0; + */ + FOO = 0, + + /** + * @generated from enum value: BAR = 1; + */ + BAR = 1, + + /** + * @generated from enum value: BAZ = 2; + */ + BAZ = 2, + + /** + * Intentionally negative. + * + * @generated from enum value: NEG = -1; + */ + NEG = -1, +} + +// Describes the enum protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedEnum. +export const TestAllRequiredTypesProto2_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 8, 0); + +/** + * @generated from enum protobuf_test_messages.editions.proto2.ForeignEnumProto2 + */ +export enum ForeignEnumProto2 { + /** + * @generated from enum value: FOREIGN_FOO = 0; + */ + FOREIGN_FOO = 0, + + /** + * @generated from enum value: FOREIGN_BAR = 1; + */ + FOREIGN_BAR = 1, + + /** + * @generated from enum value: FOREIGN_BAZ = 2; + */ + FOREIGN_BAZ = 2, +} + +// Describes the enum protobuf_test_messages.editions.proto2.ForeignEnumProto2. +export const ForeignEnumProto2Desc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0); + +/** + * @generated from extension: int32 extension_int32 = 120; + */ +export const extension_int32: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 0); + +/** + * @generated from extension: protobuf_test_messages.editions.proto2.GroupField groupfield = 121; + */ +export const groupfield: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2_editions, 1); + diff --git a/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto2_pb.ts b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto2_pb.ts index 6889c36b4..e59609d7f 100644 --- a/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto2_pb.ts +++ b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto2_pb.ts @@ -23,7 +23,7 @@ import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/cod import type { Message } from "@bufbuild/protobuf"; export const fileDesc_google_protobuf_test_messages_proto2: GenDescFile = /*@__PURE__*/ - fileDesc("Cipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzIucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yIu4+ChJUZXN0QWxsVHlwZXNQcm90bzISFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSYAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESTAoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzISFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSYAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGAoMcGFja2VkX2ludDMyGEsgAygFQgIQARIYCgxwYWNrZWRfaW50NjQYTCADKANCAhABEhkKDXBhY2tlZF91aW50MzIYTSADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYTiADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYVyADKAhCAhABElwKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQARIaCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGUgAygIQgIQABJeChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQABJdCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5El0KD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnkSYQoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnkSYQoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnkSYQoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnkSYQoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnkSZQoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5EmUKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJpChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmkKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSXQoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeRJfChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnkSWQoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5EmEKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5El8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeRJwChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJyChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EmoKFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EmwKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgNSAASXwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAASFAoKb25lb2ZfYm9vbBhzIAEoCEgAEhYKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUgASgCSAASFgoMb25lb2ZfZG91YmxlGHYgASgBSAASUgoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSAASRQoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YRIiCg1kZWZhdWx0X2ludDMyGPEBIAEoBToKLTEyMzQ1Njc4ORIsCg1kZWZhdWx0X2ludDY0GPIBIAEoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfdWludDY0GPQBIAEoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF9zaW50MzIY9QEgASgROgotMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODkSJAoPZGVmYXVsdF9maXhlZDMyGPcBIAEoBzoKMjEyMzQ1Njc4ORIuCg9kZWZhdWx0X2ZpeGVkNjQY+AEgASgGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIlChBkZWZhdWx0X3NmaXhlZDMyGPkBIAEoDzoKLTEyMzQ1Njc4ORIvChBkZWZhdWx0X3NmaXhlZDY0GPoBIAEoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODkSHQoNZGVmYXVsdF9mbG9hdBj7ASABKAI6BTllKzA5Eh4KDmRlZmF1bHRfZG91YmxlGPwBIAEoAToFN2UrMjISGwoMZGVmYXVsdF9ib29sGP0BIAEoCDoEdHJ1ZRIgCg5kZWZhdWx0X3N0cmluZxj+ASABKAk6B1Jvc2VidWQSHgoNZGVmYXVsdF9ieXRlcxj/ASABKAw6Bmpvc2h1YRITCgpmaWVsZG5hbWUxGJEDIAEoBRIUCgtmaWVsZF9uYW1lMhiSAyABKAUSFQoMX2ZpZWxkX25hbWUzGJMDIAEoBRIWCg1maWVsZF9fbmFtZTRfGJQDIAEoBRIUCgtmaWVsZDBuYW1lNRiVAyABKAUSFgoNZmllbGRfMF9uYW1lNhiWAyABKAUSEwoKZmllbGROYW1lNxiXAyABKAUSEwoKRmllbGROYW1lOBiYAyABKAUSFAoLZmllbGRfTmFtZTkYmQMgASgFEhUKDEZpZWxkX05hbWUxMBiaAyABKAUSFQoMRklFTERfTkFNRTExGJsDIAEoBRIVCgxGSUVMRF9uYW1lMTIYnAMgASgFEhcKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBRIXCg5fX0ZpZWxkX25hbWUxNBieAyABKAUSFgoNZmllbGRfX25hbWUxNRifAyABKAUSFgoNZmllbGRfX05hbWUxNhigAyABKAUSFwoOZmllbGRfbmFtZTE3X18YoQMgASgFEhcKDkZpZWxkX25hbWUxOF9fGKIDIAEoBRpiCg1OZXN0ZWRNZXNzYWdlEgkKAWEYASABKAUSRgoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo1ChNNYXBTdHJpbmdCeXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEafgobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJOCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlOgI4ARpzChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJCCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yOgI4ARp4ChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSCwoDa2V5GAEgASgJEksKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW06AjgBGm0KGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSCwoDa2V5GAEgASgJEj8KBXZhbHVlGAIgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzI6AjgBGjMKBERhdGESFAoLZ3JvdXBfaW50MzIYygEgASgFEhUKDGdyb3VwX3VpbnQzMhjLASABKA0aIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARr1AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEgsKA3N0chgZIAEoCTLIAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGvQBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISCQoBaRgJIAEoBTLJAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiEKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgkKAWMYASABKAUiwQIKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxIXCg5vcHRpb25hbF9pbnQzMhjpByABKAUSGAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCRJMCg5uZXN0ZWRfbWVzc2FnZRjrByABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaCg1vcHRpb25hbGdyb3VwGOwHIAEoCjJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlVua25vd25Ub1Rlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwEhYKDW9wdGlvbmFsX2Jvb2wY7gcgASgIEhcKDnJlcGVhdGVkX2ludDMyGPMHIAMoBRoaCg1PcHRpb25hbEdyb3VwEgkKAWEYASABKAUiFgoUTnVsbEh5cG90aGVzaXNQcm90bzIiLwoORW51bU9ubHlQcm90bzIiHQoEQm9vbBIKCgZrRmFsc2UQABIJCgVrVHJ1ZRABIh8KD09uZVN0cmluZ1Byb3RvMhIMCgRkYXRhGAEgASgJIkYKEVByb3RvV2l0aEtleXdvcmRzEg4KBmlubGluZRgBIAEoBRIPCgdjb25jZXB0GAIgASgJEhAKCHJlcXVpcmVzGAMgAygJIogUChpUZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhIWCg5yZXF1aXJlZF9pbnQzMhgBIAIoBRIWCg5yZXF1aXJlZF9pbnQ2NBgCIAIoAxIXCg9yZXF1aXJlZF91aW50MzIYAyACKA0SFwoPcmVxdWlyZWRfdWludDY0GAQgAigEEhcKD3JlcXVpcmVkX3NpbnQzMhgFIAIoERIXCg9yZXF1aXJlZF9zaW50NjQYBiACKBISGAoQcmVxdWlyZWRfZml4ZWQzMhgHIAIoBxIYChByZXF1aXJlZF9maXhlZDY0GAggAigGEhkKEXJlcXVpcmVkX3NmaXhlZDMyGAkgAigPEhkKEXJlcXVpcmVkX3NmaXhlZDY0GAogAigQEhYKDnJlcXVpcmVkX2Zsb2F0GAsgAigCEhcKD3JlcXVpcmVkX2RvdWJsZRgMIAIoARIVCg1yZXF1aXJlZF9ib29sGA0gAigIEhcKD3JlcXVpcmVkX3N0cmluZxgOIAIoCRIWCg5yZXF1aXJlZF9ieXRlcxgPIAIoDBJoChdyZXF1aXJlZF9uZXN0ZWRfbWVzc2FnZRgSIAIoCzJHLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2USVQoYcmVxdWlyZWRfZm9yZWlnbl9tZXNzYWdlGBMgAigLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzISYgoUcmVxdWlyZWRfbmVzdGVkX2VudW0YFSACKA4yRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcXVpcmVkX2ZvcmVpZ25fZW51bRgWIAIoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcXVpcmVkX3N0cmluZ19waWVjZRgYIAIoCUICCAISGQoNcmVxdWlyZWRfY29yZBgZIAIoCUICCAESVAoRcmVjdXJzaXZlX21lc3NhZ2UYGyACKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhJdChpvcHRpb25hbF9yZWN1cnNpdmVfbWVzc2FnZRgcIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yEk0KBGRhdGEYyQEgAigKMj4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuRGF0YRIiCg1kZWZhdWx0X2ludDMyGPEBIAIoBToKLTEyMzQ1Njc4ORIsCg1kZWZhdWx0X2ludDY0GPIBIAIoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF91aW50MzIY8wEgAigNOgoyMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfdWludDY0GPQBIAIoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF9zaW50MzIY9QEgAigROgotMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfc2ludDY0GPYBIAIoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODkSJAoPZGVmYXVsdF9maXhlZDMyGPcBIAIoBzoKMjEyMzQ1Njc4ORIuCg9kZWZhdWx0X2ZpeGVkNjQY+AEgAigGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIlChBkZWZhdWx0X3NmaXhlZDMyGPkBIAIoDzoKLTEyMzQ1Njc4ORIvChBkZWZhdWx0X3NmaXhlZDY0GPoBIAIoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODkSHQoNZGVmYXVsdF9mbG9hdBj7ASACKAI6BTllKzA5Eh4KDmRlZmF1bHRfZG91YmxlGPwBIAIoAToFN2UrMjISGwoMZGVmYXVsdF9ib29sGP0BIAIoCDoEdHJ1ZRIgCg5kZWZhdWx0X3N0cmluZxj+ASACKAk6B1Jvc2VidWQSHgoNZGVmYXVsdF9ieXRlcxj/ASACKAw6Bmpvc2h1YRrDAQoNTmVzdGVkTWVzc2FnZRIJCgFhGAEgAigFEk4KC2NvcmVjdXJzaXZlGAIgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISVwoUb3B0aW9uYWxfY29yZWN1cnNpdmUYAyABKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhozCgREYXRhEhQKC2dyb3VwX2ludDMyGMoBIAIoBRIVCgxncm91cF91aW50MzIYywEgAigNGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEahQIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRILCgNzdHIYGSACKAky2AEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyVS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjFSE21lc3NhZ2VTZXRFeHRlbnNpb24ahAIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMhIJCgFpGAkgAigFMtkBChVtZXNzYWdlX3NldF9leHRlbnNpb24SSy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJVLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUoGCOgHEJBOKkYKEUZvcmVpZ25FbnVtUHJvdG8yEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACOloKD2V4dGVuc2lvbl9pbnQzMhIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMhh4IAEoBVIOZXh0ZW5zaW9uSW50MzJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMkgB+AEBogIGUHJvdG8y"); + fileDesc("Cipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzIucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yIpdAChJUZXN0QWxsVHlwZXNQcm90bzISFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSYAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESTAoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzISFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSYAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGAoMcGFja2VkX2ludDMyGEsgAygFQgIQARIYCgxwYWNrZWRfaW50NjQYTCADKANCAhABEhkKDXBhY2tlZF91aW50MzIYTSADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYTiADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYVyADKAhCAhABElwKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQARIaCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGUgAygIQgIQABJeChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQABJdCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5El0KD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnkSYQoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnkSYQoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnkSYQoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnkSYQoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnkSZQoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5EmUKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJpChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmkKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSXQoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeRJfChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnkSWQoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5EmEKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5El8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeRJwChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJyChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EmoKFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EmwKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgNSAASXwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAASFAoKb25lb2ZfYm9vbBhzIAEoCEgAEhYKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUgASgCSAASFgoMb25lb2ZfZG91YmxlGHYgASgBSAASUgoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSAASRQoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YRJjChNtdWx0aXdvcmRncm91cGZpZWxkGMwBIAEoCjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NdWx0aVdvcmRHcm91cEZpZWxkEiIKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5EiwKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3VpbnQzMhjzASABKA06CjIxMjM0NTY3ODkSLQoOZGVmYXVsdF91aW50NjQY9AEgASgEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3NpbnQzMhj1ASABKBE6Ci0xMjM0NTY3ODkSLQoOZGVmYXVsdF9zaW50NjQY9gEgASgSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIkCg9kZWZhdWx0X2ZpeGVkMzIY9wEgASgHOgoyMTIzNDU2Nzg5Ei4KD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5EiUKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ei8KEGRlZmF1bHRfc2ZpeGVkNjQY+gEgASgQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIdCg1kZWZhdWx0X2Zsb2F0GPsBIAEoAjoFOWUrMDkSHgoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMhIbCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlEiAKDmRlZmF1bHRfc3RyaW5nGP4BIAEoCToHUm9zZWJ1ZBIeCg1kZWZhdWx0X2J5dGVzGP8BIAEoDDoGam9zaHVhEhMKCmZpZWxkbmFtZTEYkQMgASgFEhQKC2ZpZWxkX25hbWUyGJIDIAEoBRIVCgxfZmllbGRfbmFtZTMYkwMgASgFEhYKDWZpZWxkX19uYW1lNF8YlAMgASgFEhQKC2ZpZWxkMG5hbWU1GJUDIAEoBRIWCg1maWVsZF8wX25hbWU2GJYDIAEoBRITCgpmaWVsZE5hbWU3GJcDIAEoBRITCgpGaWVsZE5hbWU4GJgDIAEoBRIUCgtmaWVsZF9OYW1lORiZAyABKAUSFQoMRmllbGRfTmFtZTEwGJoDIAEoBRIVCgxGSUVMRF9OQU1FMTEYmwMgASgFEhUKDEZJRUxEX25hbWUxMhicAyABKAUSFwoOX19maWVsZF9uYW1lMTMYnQMgASgFEhcKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBRIWCg1maWVsZF9fbmFtZTE1GJ8DIAEoBRIWCg1maWVsZF9fTmFtZTE2GKADIAEoBRIXCg5maWVsZF9uYW1lMTdfXxihAyABKAUSFwoORmllbGRfbmFtZTE4X18YogMgASgFGmIKDU5lc3RlZE1lc3NhZ2USCQoBYRgBIAEoBRJGCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMho0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjUKE01hcFN0cmluZ0J5dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ARp+ChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEk4KBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2U6AjgBGnMKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEkIKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzI6AjgBGngKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRILCgNrZXkYASABKAkSSwoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bToCOAEabQoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRILCgNrZXkYASABKAkSPwoFdmFsdWUYAiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMjoCOAEaMwoERGF0YRIUCgtncm91cF9pbnQzMhjKASABKAUSFQoMZ3JvdXBfdWludDMyGMsBIAEoDRpCChNNdWx0aVdvcmRHcm91cEZpZWxkEhQKC2dyb3VwX2ludDMyGM0BIAEoBRIVCgxncm91cF91aW50MzIYzgEgASgNGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEa9QEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRILCgNzdHIYGSABKAkyyAEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhr0AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgkKAWkYCSABKAUyyQEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFCDQoLb25lb2ZfZmllbGRKBgjoBxCQTiIhChRGb3JlaWduTWVzc2FnZVByb3RvMhIJCgFjGAEgASgFIjcKCkdyb3VwRmllbGQSEwoLZ3JvdXBfaW50MzIYeiABKAUSFAoMZ3JvdXBfdWludDMyGHsgASgNIsECChVVbmtub3duVG9UZXN0QWxsVHlwZXMSFwoOb3B0aW9uYWxfaW50MzIY6QcgASgFEhgKD29wdGlvbmFsX3N0cmluZxjqByABKAkSTAoObmVzdGVkX21lc3NhZ2UY6wcgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzISWgoNb3B0aW9uYWxncm91cBjsByABKAoyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Vbmtub3duVG9UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cBIWCg1vcHRpb25hbF9ib29sGO4HIAEoCBIXCg5yZXBlYXRlZF9pbnQzMhjzByADKAUaGgoNT3B0aW9uYWxHcm91cBIJCgFhGAEgASgFIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8yIi8KDkVudW1Pbmx5UHJvdG8yIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASIfCg9PbmVTdHJpbmdQcm90bzISDAoEZGF0YRgBIAEoCSJGChFQcm90b1dpdGhLZXl3b3JkcxIOCgZpbmxpbmUYASABKAUSDwoHY29uY2VwdBgCIAEoCRIQCghyZXF1aXJlcxgDIAMoCSKIFAoaVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISFgoOcmVxdWlyZWRfaW50MzIYASACKAUSFgoOcmVxdWlyZWRfaW50NjQYAiACKAMSFwoPcmVxdWlyZWRfdWludDMyGAMgAigNEhcKD3JlcXVpcmVkX3VpbnQ2NBgEIAIoBBIXCg9yZXF1aXJlZF9zaW50MzIYBSACKBESFwoPcmVxdWlyZWRfc2ludDY0GAYgAigSEhgKEHJlcXVpcmVkX2ZpeGVkMzIYByACKAcSGAoQcmVxdWlyZWRfZml4ZWQ2NBgIIAIoBhIZChFyZXF1aXJlZF9zZml4ZWQzMhgJIAIoDxIZChFyZXF1aXJlZF9zZml4ZWQ2NBgKIAIoEBIWCg5yZXF1aXJlZF9mbG9hdBgLIAIoAhIXCg9yZXF1aXJlZF9kb3VibGUYDCACKAESFQoNcmVxdWlyZWRfYm9vbBgNIAIoCBIXCg9yZXF1aXJlZF9zdHJpbmcYDiACKAkSFgoOcmVxdWlyZWRfYnl0ZXMYDyACKAwSaAoXcmVxdWlyZWRfbmVzdGVkX21lc3NhZ2UYEiACKAsyRy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlElUKGHJlcXVpcmVkX2ZvcmVpZ25fbWVzc2FnZRgTIAIoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yEmIKFHJlcXVpcmVkX25lc3RlZF9lbnVtGBUgAigOMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkRW51bRJPChVyZXF1aXJlZF9mb3JlaWduX2VudW0YFiACKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMhIhChVyZXF1aXJlZF9zdHJpbmdfcGllY2UYGCACKAlCAggCEhkKDXJlcXVpcmVkX2NvcmQYGSACKAlCAggBElQKEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISXQoab3B0aW9uYWxfcmVjdXJzaXZlX21lc3NhZ2UYHCABKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhJNCgRkYXRhGMkBIAIoCjI+LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLkRhdGESIgoNZGVmYXVsdF9pbnQzMhjxASACKAU6Ci0xMjM0NTY3ODkSLAoNZGVmYXVsdF9pbnQ2NBjyASACKAM6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5EiMKDmRlZmF1bHRfdWludDMyGPMBIAIoDToKMjEyMzQ1Njc4ORItCg5kZWZhdWx0X3VpbnQ2NBj0ASACKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5EiMKDmRlZmF1bHRfc2ludDMyGPUBIAIoEToKLTEyMzQ1Njc4ORItCg5kZWZhdWx0X3NpbnQ2NBj2ASACKBI6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5EiQKD2RlZmF1bHRfZml4ZWQzMhj3ASACKAc6CjIxMjM0NTY3ODkSLgoPZGVmYXVsdF9maXhlZDY0GPgBIAIoBjoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSJQoQZGVmYXVsdF9zZml4ZWQzMhj5ASACKA86Ci0xMjM0NTY3ODkSLwoQZGVmYXVsdF9zZml4ZWQ2NBj6ASACKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Eh0KDWRlZmF1bHRfZmxvYXQY+wEgAigCOgU5ZSswORIeCg5kZWZhdWx0X2RvdWJsZRj8ASACKAE6BTdlKzIyEhsKDGRlZmF1bHRfYm9vbBj9ASACKAg6BHRydWUSIAoOZGVmYXVsdF9zdHJpbmcY/gEgAigJOgdSb3NlYnVkEh4KDWRlZmF1bHRfYnl0ZXMY/wEgAigMOgZqb3NodWEawwEKDU5lc3RlZE1lc3NhZ2USCQoBYRgBIAIoBRJOCgtjb3JlY3Vyc2l2ZRgCIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yElcKFG9wdGlvbmFsX2NvcmVjdXJzaXZlGAMgASgLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIaMwoERGF0YRIUCgtncm91cF9pbnQzMhjKASACKAUSFQoMZ3JvdXBfdWludDMyGMsBIAIoDRohChFNZXNzYWdlU2V0Q29ycmVjdCoICAQQ/////wc6AggBGoUCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjESCwoDc3RyGBkgAigJMtgBChVtZXNzYWdlX3NldF9leHRlbnNpb24SSy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMlUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGoQCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISCQoBaRgJIAIoBTLZAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyVS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFKBgjoBxCQTipGChFGb3JlaWduRW51bVByb3RvMhIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjpaCg9leHRlbnNpb25faW50MzISMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeCABKAVSDmV4dGVuc2lvbkludDMyOnwKCmdyb3VwZmllbGQSMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeSABKAoyKS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Hcm91cEZpZWxkUgpncm91cGZpZWxkQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzJIAfgBAaICBlByb3RvMg"); /** * This proto includes every type of field in both singular and repeated @@ -561,6 +561,11 @@ export type TestAllTypesProto2 = Message<"protobuf_test_messages.proto2.TestAllT */ data?: TestAllTypesProto2_Data; + /** + * @generated from field: optional protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField multiwordgroupfield = 204; + */ + multiwordgroupfield?: TestAllTypesProto2_MultiWordGroupField; + /** * default values * @@ -779,6 +784,26 @@ export type TestAllTypesProto2_Data = Message<"protobuf_test_messages.proto2.Tes export const TestAllTypesProto2_DataDesc: GenDescMessage = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 1); +/** + * @generated from message protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField + */ +export type TestAllTypesProto2_MultiWordGroupField = Message<"protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField"> & { + /** + * @generated from field: optional int32 group_int32 = 205; + */ + groupInt32: number; + + /** + * @generated from field: optional uint32 group_uint32 = 206; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField. +// Use `create(TestAllTypesProto2_MultiWordGroupFieldDesc)` to create a new TestAllTypesProto2_MultiWordGroupField. +export const TestAllTypesProto2_MultiWordGroupFieldDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 2); + /** * message_set test case. * @@ -790,7 +815,7 @@ export type TestAllTypesProto2_MessageSetCorrect = Message<"protobuf_test_messag // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect. // Use `create(TestAllTypesProto2_MessageSetCorrectDesc)` to create a new TestAllTypesProto2_MessageSetCorrect. export const TestAllTypesProto2_MessageSetCorrectDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3); /** * @generated from message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 @@ -805,13 +830,13 @@ export type TestAllTypesProto2_MessageSetCorrectExtension1 = Message<"protobuf_t // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1. // Use `create(TestAllTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension1. export const TestAllTypesProto2_MessageSetCorrectExtension1Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; */ export const TestAllTypesProto2_MessageSetCorrectExtension1_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4, 0); /** * @generated from message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 @@ -826,13 +851,13 @@ export type TestAllTypesProto2_MessageSetCorrectExtension2 = Message<"protobuf_t // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2. // Use `create(TestAllTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension2. export const TestAllTypesProto2_MessageSetCorrectExtension2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 5); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; */ export const TestAllTypesProto2_MessageSetCorrectExtension2_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 5, 0); /** * @generated from enum protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum @@ -880,6 +905,26 @@ export type ForeignMessageProto2 = Message<"protobuf_test_messages.proto2.Foreig export const ForeignMessageProto2Desc: GenDescMessage = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_test_messages_proto2, 1); +/** + * @generated from message protobuf_test_messages.proto2.GroupField + */ +export type GroupField = Message<"protobuf_test_messages.proto2.GroupField"> & { + /** + * @generated from field: optional int32 group_int32 = 122; + */ + groupInt32: number; + + /** + * @generated from field: optional uint32 group_uint32 = 123; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.proto2.GroupField. +// Use `create(GroupFieldDesc)` to create a new GroupField. +export const GroupFieldDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2); + /** * @generated from message protobuf_test_messages.proto2.UnknownToTestAllTypes */ @@ -918,7 +963,7 @@ export type UnknownToTestAllTypes = Message<"protobuf_test_messages.proto2.Unkno // Describes the message protobuf_test_messages.proto2.UnknownToTestAllTypes. // Use `create(UnknownToTestAllTypesDesc)` to create a new UnknownToTestAllTypes. export const UnknownToTestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3); /** * @generated from message protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup @@ -933,7 +978,7 @@ export type UnknownToTestAllTypes_OptionalGroup = Message<"protobuf_test_message // Describes the message protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup. // Use `create(UnknownToTestAllTypes_OptionalGroupDesc)` to create a new UnknownToTestAllTypes_OptionalGroup. export const UnknownToTestAllTypes_OptionalGroupDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2, 0); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3, 0); /** * @generated from message protobuf_test_messages.proto2.NullHypothesisProto2 @@ -944,7 +989,7 @@ export type NullHypothesisProto2 = Message<"protobuf_test_messages.proto2.NullHy // Describes the message protobuf_test_messages.proto2.NullHypothesisProto2. // Use `create(NullHypothesisProto2Desc)` to create a new NullHypothesisProto2. export const NullHypothesisProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 4); /** * @generated from message protobuf_test_messages.proto2.EnumOnlyProto2 @@ -955,7 +1000,7 @@ export type EnumOnlyProto2 = Message<"protobuf_test_messages.proto2.EnumOnlyProt // Describes the message protobuf_test_messages.proto2.EnumOnlyProto2. // Use `create(EnumOnlyProto2Desc)` to create a new EnumOnlyProto2. export const EnumOnlyProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 5); /** * @generated from enum protobuf_test_messages.proto2.EnumOnlyProto2.Bool @@ -974,7 +1019,7 @@ export enum EnumOnlyProto2_Bool { // Describes the enum protobuf_test_messages.proto2.EnumOnlyProto2.Bool. export const EnumOnlyProto2_BoolDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_test_messages_proto2, 4, 0); + enumDesc(fileDesc_google_protobuf_test_messages_proto2, 5, 0); /** * @generated from message protobuf_test_messages.proto2.OneStringProto2 @@ -989,7 +1034,7 @@ export type OneStringProto2 = Message<"protobuf_test_messages.proto2.OneStringPr // Describes the message protobuf_test_messages.proto2.OneStringProto2. // Use `create(OneStringProto2Desc)` to create a new OneStringProto2. export const OneStringProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 5); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 6); /** * @generated from message protobuf_test_messages.proto2.ProtoWithKeywords @@ -1014,7 +1059,7 @@ export type ProtoWithKeywords = Message<"protobuf_test_messages.proto2.ProtoWith // Describes the message protobuf_test_messages.proto2.ProtoWithKeywords. // Use `create(ProtoWithKeywordsDesc)` to create a new ProtoWithKeywords. export const ProtoWithKeywordsDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 6); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2 @@ -1223,7 +1268,7 @@ export type TestAllRequiredTypesProto2 = Message<"protobuf_test_messages.proto2. // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2. // Use `create(TestAllRequiredTypesProto2Desc)` to create a new TestAllRequiredTypesProto2. export const TestAllRequiredTypesProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage @@ -1248,7 +1293,7 @@ export type TestAllRequiredTypesProto2_NestedMessage = Message<"protobuf_test_me // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage. // Use `create(TestAllRequiredTypesProto2_NestedMessageDesc)` to create a new TestAllRequiredTypesProto2_NestedMessage. export const TestAllRequiredTypesProto2_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 0); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 0); /** * groups @@ -1270,7 +1315,7 @@ export type TestAllRequiredTypesProto2_Data = Message<"protobuf_test_messages.pr // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.Data. // Use `create(TestAllRequiredTypesProto2_DataDesc)` to create a new TestAllRequiredTypesProto2_Data. export const TestAllRequiredTypesProto2_DataDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 1); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 1); /** * message_set test case. @@ -1283,7 +1328,7 @@ export type TestAllRequiredTypesProto2_MessageSetCorrect = Message<"protobuf_tes // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect. // Use `create(TestAllRequiredTypesProto2_MessageSetCorrectDesc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrect. export const TestAllRequiredTypesProto2_MessageSetCorrectDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 2); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 @@ -1298,13 +1343,13 @@ export type TestAllRequiredTypesProto2_MessageSetCorrectExtension1 = Message<"pr // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1. // Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension1. export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 3); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; */ export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 3, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 3, 0); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 @@ -1319,13 +1364,13 @@ export type TestAllRequiredTypesProto2_MessageSetCorrectExtension2 = Message<"pr // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2. // Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension2. export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 4); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; */ export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 4, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 4, 0); /** * @generated from enum protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedEnum @@ -1356,7 +1401,7 @@ export enum TestAllRequiredTypesProto2_NestedEnum { // Describes the enum protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedEnum. export const TestAllRequiredTypesProto2_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 0); + enumDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 0); /** * @generated from enum protobuf_test_messages.proto2.ForeignEnumProto2 @@ -1388,3 +1433,9 @@ export const ForeignEnumProto2Desc: GenDescEnum = /*@__PURE__ export const extension_int32: GenDescExtension = /*@__PURE__*/ extDesc(fileDesc_google_protobuf_test_messages_proto2, 0); +/** + * @generated from extension: optional protobuf_test_messages.proto2.GroupField groupfield = 121; + */ +export const groupfield: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2, 1); + diff --git a/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto3_editions_pb.ts b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto3_editions_pb.ts new file mode 100644 index 000000000..427ac6245 --- /dev/null +++ b/packages/protobuf-conformance/src/gen/google/protobuf/test_messages_proto3_editions_pb.ts @@ -0,0 +1,1000 @@ +// Copyright 2021-2024 Buf Technologies, Inc. +// +// 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. + +// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" +// @generated from file google/protobuf/test_messages_proto3_editions.proto (package protobuf_test_messages.editions.proto3, edition 2023) +/* eslint-disable */ + +import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; +import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; +import type { Any, BoolValue, BytesValue, DoubleValue, Duration, FieldMask, FloatValue, Int32Value, Int64Value, ListValue, NullValue, StringValue, Struct, Timestamp, UInt32Value, UInt64Value, Value } from "@bufbuild/protobuf/wkt"; +import { fileDesc_google_protobuf_any, fileDesc_google_protobuf_duration, fileDesc_google_protobuf_field_mask, fileDesc_google_protobuf_struct, fileDesc_google_protobuf_timestamp, fileDesc_google_protobuf_wrappers } from "@bufbuild/protobuf/wkt"; +import type { Message } from "@bufbuild/protobuf"; + +export const fileDesc_google_protobuf_test_messages_proto3_editions: GenDescFile = /*@__PURE__*/ + fileDesc("CjNnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzNfZWRpdGlvbnMucHJvdG8SJnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zIvtHChJUZXN0QWxsVHlwZXNQcm90bzMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSaQoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZRJYChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5Gb3JlaWduTWVzc2FnZRJjChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtElIKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLkZvcmVpZ25FbnVtEmUKFW9wdGlvbmFsX2FsaWFzZWRfZW51bRgXIAEoDjJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5BbGlhc2VkRW51bRIhChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCEhkKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBElUKEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zEhYKDnJlcGVhdGVkX2ludDMyGB8gAygFEhYKDnJlcGVhdGVkX2ludDY0GCAgAygDEhcKD3JlcGVhdGVkX3VpbnQzMhghIAMoDRIXCg9yZXBlYXRlZF91aW50NjQYIiADKAQSFwoPcmVwZWF0ZWRfc2ludDMyGCMgAygREhcKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoEhIYChByZXBlYXRlZF9maXhlZDMyGCUgAygHEhgKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAYSGQoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA8SGQoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBASFgoOcmVwZWF0ZWRfZmxvYXQYKSADKAISFwoPcmVwZWF0ZWRfZG91YmxlGCogAygBEhUKDXJlcGVhdGVkX2Jvb2wYKyADKAgSFwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJEhYKDnJlcGVhdGVkX2J5dGVzGC0gAygMEmkKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2USWAoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMjYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuRm9yZWlnbk1lc3NhZ2USYwoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bRJSChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5Gb3JlaWduRW51bRIhChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCEhkKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBEhQKDHBhY2tlZF9pbnQzMhhLIAMoBRIUCgxwYWNrZWRfaW50NjQYTCADKAMSFQoNcGFja2VkX3VpbnQzMhhNIAMoDRIVCg1wYWNrZWRfdWludDY0GE4gAygEEhUKDXBhY2tlZF9zaW50MzIYTyADKBESFQoNcGFja2VkX3NpbnQ2NBhQIAMoEhIWCg5wYWNrZWRfZml4ZWQzMhhRIAMoBxIWCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBhIXCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA8SFwoPcGFja2VkX3NmaXhlZDY0GFQgAygQEhQKDHBhY2tlZF9mbG9hdBhVIAMoAhIVCg1wYWNrZWRfZG91YmxlGFYgAygBEhMKC3BhY2tlZF9ib29sGFcgAygIEmEKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtEh0KDnVucGFja2VkX2ludDMyGFkgAygFQgWqAQIYAhIdCg51bnBhY2tlZF9pbnQ2NBhaIAMoA0IFqgECGAISHgoPdW5wYWNrZWRfdWludDMyGFsgAygNQgWqAQIYAhIeCg91bnBhY2tlZF91aW50NjQYXCADKARCBaoBAhgCEh4KD3VucGFja2VkX3NpbnQzMhhdIAMoEUIFqgECGAISHgoPdW5wYWNrZWRfc2ludDY0GF4gAygSQgWqAQIYAhIfChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgWqAQIYAhIfChB1bnBhY2tlZF9maXhlZDY0GGAgAygGQgWqAQIYAhIgChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0IFqgECGAISIAoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCBaoBAhgCEh0KDnVucGFja2VkX2Zsb2F0GGMgAygCQgWqAQIYAhIeCg91bnBhY2tlZF9kb3VibGUYZCADKAFCBaoBAhgCEhwKDXVucGFja2VkX2Jvb2wYZSADKAhCBaoBAhgCEmoKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CBaoBAhgCEmYKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkludDMyRW50cnkSZgoPbWFwX2ludDY0X2ludDY0GDkgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDY0SW50NjRFbnRyeRJqChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJPLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBVaW50MzJVaW50MzJFbnRyeRJqChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJPLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBVaW50NjRVaW50NjRFbnRyeRJqChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJPLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50MzJTaW50MzJFbnRyeRJqChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJPLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50NjRTaW50NjRFbnRyeRJuChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMlEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSbgoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJRLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EnIKFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJTLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkScgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMlMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRJmCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJGbG9hdEVudHJ5EmgKEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJEb3VibGVFbnRyeRJiCg1tYXBfYm9vbF9ib29sGEQgAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEJvb2xCb29sRW50cnkSagoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyTy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nU3RyaW5nRW50cnkSaAoQbWFwX3N0cmluZ19ieXRlcxhGIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdCeXRlc0VudHJ5EnkKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyVi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EnsKGm1hcF9zdHJpbmdfZm9yZWlnbl9tZXNzYWdlGEggAygLMlcucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkScwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJTLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSdQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsyVC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIWCgxvbmVvZl91aW50MzIYbyABKA1IABJoChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0ZXMYciABKAxIABIUCgpvbmVvZl9ib29sGHMgASgISAASFgoMb25lb2ZfdWludDY0GHQgASgESAASFQoLb25lb2ZfZmxvYXQYdSABKAJIABIWCgxvbmVvZl9kb3VibGUYdiABKAFIABJbCgpvbmVvZl9lbnVtGHcgASgOMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5lZGl0aW9ucy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1IABI2ChBvbmVvZl9udWxsX3ZhbHVlGHggASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZUgAEjoKFW9wdGlvbmFsX2Jvb2xfd3JhcHBlchjJASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjwKFm9wdGlvbmFsX2ludDMyX3dyYXBwZXIYygEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSPAoWb3B0aW9uYWxfaW50NjRfd3JhcHBlchjLASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI+ChdvcHRpb25hbF91aW50MzJfd3JhcHBlchjMASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSPgoXb3B0aW9uYWxfdWludDY0X3dyYXBwZXIYzQEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEjwKFm9wdGlvbmFsX2Zsb2F0X3dyYXBwZXIYzgEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWUSPgoXb3B0aW9uYWxfZG91YmxlX3dyYXBwZXIYzwEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEj4KF29wdGlvbmFsX3N0cmluZ193cmFwcGVyGNABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI8ChZvcHRpb25hbF9ieXRlc193cmFwcGVyGNEBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlEjoKFXJlcGVhdGVkX2Jvb2xfd3JhcHBlchjTASADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjwKFnJlcGVhdGVkX2ludDMyX3dyYXBwZXIY1AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSPAoWcmVwZWF0ZWRfaW50NjRfd3JhcHBlchjVASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI+ChdyZXBlYXRlZF91aW50MzJfd3JhcHBlchjWASADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSPgoXcmVwZWF0ZWRfdWludDY0X3dyYXBwZXIY1wEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEjwKFnJlcGVhdGVkX2Zsb2F0X3dyYXBwZXIY2AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWUSPgoXcmVwZWF0ZWRfZG91YmxlX3dyYXBwZXIY2QEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEj4KF3JlcGVhdGVkX3N0cmluZ193cmFwcGVyGNoBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI8ChZyZXBlYXRlZF9ieXRlc193cmFwcGVyGNsBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlEjUKEW9wdGlvbmFsX2R1cmF0aW9uGK0CIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhI3ChJvcHRpb25hbF90aW1lc3RhbXAYrgIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4ChNvcHRpb25hbF9maWVsZF9tYXNrGK8CIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sSMQoPb3B0aW9uYWxfc3RydWN0GLACIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKwoMb3B0aW9uYWxfYW55GLECIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnkSLwoOb3B0aW9uYWxfdmFsdWUYsgIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjgKE29wdGlvbmFsX251bGxfdmFsdWUYswIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZRI1ChFyZXBlYXRlZF9kdXJhdGlvbhi3AiADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SNwoScmVwZWF0ZWRfdGltZXN0YW1wGLgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoScmVwZWF0ZWRfZmllbGRtYXNrGLkCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sSMQoPcmVwZWF0ZWRfc3RydWN0GMQCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKwoMcmVwZWF0ZWRfYW55GLsCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnkSLwoOcmVwZWF0ZWRfdmFsdWUYvAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjgKE3JlcGVhdGVkX2xpc3RfdmFsdWUYvQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZRITCgpmaWVsZG5hbWUxGJEDIAEoBRIUCgtmaWVsZF9uYW1lMhiSAyABKAUSFQoMX2ZpZWxkX25hbWUzGJMDIAEoBRIWCg1maWVsZF9fbmFtZTRfGJQDIAEoBRIUCgtmaWVsZDBuYW1lNRiVAyABKAUSFgoNZmllbGRfMF9uYW1lNhiWAyABKAUSEwoKZmllbGROYW1lNxiXAyABKAUSEwoKRmllbGROYW1lOBiYAyABKAUSFAoLZmllbGRfTmFtZTkYmQMgASgFEhUKDEZpZWxkX05hbWUxMBiaAyABKAUSFQoMRklFTERfTkFNRTExGJsDIAEoBRIVCgxGSUVMRF9uYW1lMTIYnAMgASgFEhcKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBRIXCg5fX0ZpZWxkX25hbWUxNBieAyABKAUSFgoNZmllbGRfX25hbWUxNRifAyABKAUSFgoNZmllbGRfX05hbWUxNhigAyABKAUSFwoOZmllbGRfbmFtZTE3X18YoQMgASgFEhcKDkZpZWxkX25hbWUxOF9fGKIDIAEoBRprCg1OZXN0ZWRNZXNzYWdlEgkKAWEYASABKAUSTwoLY29yZWN1cnNpdmUYAiABKAsyOi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo1ChNNYXBTdHJpbmdCeXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEahwEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAkSVwoFdmFsdWUYAiABKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZToCOAEadgocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAkSRQoFdmFsdWUYAiABKAsyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5Gb3JlaWduTWVzc2FnZToCOAEagQEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRILCgNrZXkYASABKAkSVAoFdmFsdWUYAiABKA4yRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bToCOAEacAoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRILCgNrZXkYASABKAkSQgoFdmFsdWUYAiABKA4yMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLmVkaXRpb25zLnByb3RvMy5Gb3JlaWduRW51bToCOAEiOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASJZCgtBbGlhc2VkRW51bRINCglBTElBU19GT08QABINCglBTElBU19CQVIQARINCglBTElBU19CQVoQAhIHCgNNT08QAhIHCgNtb28QAhIHCgNiQXoQAhoCEAFCDQoLb25lb2ZfZmllbGRKBgj1AxD/AyIbCg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8zIi8KDkVudW1Pbmx5UHJvdG8zIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASpACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAkJLCjFjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMuZWRpdGlvbnMucHJvdG8zSAGiAg5FZGl0aW9uc1Byb3RvM5IDAggCYghlZGl0aW9uc3DoBw", [fileDesc_google_protobuf_any, fileDesc_google_protobuf_duration, fileDesc_google_protobuf_field_mask, fileDesc_google_protobuf_struct, fileDesc_google_protobuf_timestamp, fileDesc_google_protobuf_wrappers]); + +/** + * This proto includes every type of field in both singular and repeated + * forms. + * + * Also, crucially, all messages and enums in this file are eventually + * submessages of this message. So for example, a fuzz test of TestAllTypes + * could trigger bugs that occur in any message type in this file. We verify + * this stays true in a unit test. + * + * @generated from message protobuf_test_messages.editions.proto3.TestAllTypesProto3 + */ +export type TestAllTypesProto3 = Message<"protobuf_test_messages.editions.proto3.TestAllTypesProto3"> & { + /** + * Singular + * + * @generated from field: int32 optional_int32 = 1; + */ + optionalInt32: number; + + /** + * @generated from field: int64 optional_int64 = 2; + */ + optionalInt64: bigint; + + /** + * @generated from field: uint32 optional_uint32 = 3; + */ + optionalUint32: number; + + /** + * @generated from field: uint64 optional_uint64 = 4; + */ + optionalUint64: bigint; + + /** + * @generated from field: sint32 optional_sint32 = 5; + */ + optionalSint32: number; + + /** + * @generated from field: sint64 optional_sint64 = 6; + */ + optionalSint64: bigint; + + /** + * @generated from field: fixed32 optional_fixed32 = 7; + */ + optionalFixed32: number; + + /** + * @generated from field: fixed64 optional_fixed64 = 8; + */ + optionalFixed64: bigint; + + /** + * @generated from field: sfixed32 optional_sfixed32 = 9; + */ + optionalSfixed32: number; + + /** + * @generated from field: sfixed64 optional_sfixed64 = 10; + */ + optionalSfixed64: bigint; + + /** + * @generated from field: float optional_float = 11; + */ + optionalFloat: number; + + /** + * @generated from field: double optional_double = 12; + */ + optionalDouble: number; + + /** + * @generated from field: bool optional_bool = 13; + */ + optionalBool: boolean; + + /** + * @generated from field: string optional_string = 14; + */ + optionalString: string; + + /** + * @generated from field: bytes optional_bytes = 15; + */ + optionalBytes: Uint8Array; + + /** + * @generated from field: protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage optional_nested_message = 18; + */ + optionalNestedMessage?: TestAllTypesProto3_NestedMessage; + + /** + * @generated from field: protobuf_test_messages.editions.proto3.ForeignMessage optional_foreign_message = 19; + */ + optionalForeignMessage?: ForeignMessage; + + /** + * @generated from field: protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum optional_nested_enum = 21; + */ + optionalNestedEnum: TestAllTypesProto3_NestedEnum; + + /** + * @generated from field: protobuf_test_messages.editions.proto3.ForeignEnum optional_foreign_enum = 22; + */ + optionalForeignEnum: ForeignEnum; + + /** + * @generated from field: protobuf_test_messages.editions.proto3.TestAllTypesProto3.AliasedEnum optional_aliased_enum = 23; + */ + optionalAliasedEnum: TestAllTypesProto3_AliasedEnum; + + /** + * @generated from field: string optional_string_piece = 24; + */ + optionalStringPiece: string; + + /** + * @generated from field: string optional_cord = 25; + */ + optionalCord: string; + + /** + * @generated from field: protobuf_test_messages.editions.proto3.TestAllTypesProto3 recursive_message = 27; + */ + recursiveMessage?: TestAllTypesProto3; + + /** + * Repeated + * + * @generated from field: repeated int32 repeated_int32 = 31; + */ + repeatedInt32: number[]; + + /** + * @generated from field: repeated int64 repeated_int64 = 32; + */ + repeatedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 repeated_uint32 = 33; + */ + repeatedUint32: number[]; + + /** + * @generated from field: repeated uint64 repeated_uint64 = 34; + */ + repeatedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 repeated_sint32 = 35; + */ + repeatedSint32: number[]; + + /** + * @generated from field: repeated sint64 repeated_sint64 = 36; + */ + repeatedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 repeated_fixed32 = 37; + */ + repeatedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 repeated_fixed64 = 38; + */ + repeatedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; + */ + repeatedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; + */ + repeatedSfixed64: bigint[]; + + /** + * @generated from field: repeated float repeated_float = 41; + */ + repeatedFloat: number[]; + + /** + * @generated from field: repeated double repeated_double = 42; + */ + repeatedDouble: number[]; + + /** + * @generated from field: repeated bool repeated_bool = 43; + */ + repeatedBool: boolean[]; + + /** + * @generated from field: repeated string repeated_string = 44; + */ + repeatedString: string[]; + + /** + * @generated from field: repeated bytes repeated_bytes = 45; + */ + repeatedBytes: Uint8Array[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage repeated_nested_message = 48; + */ + repeatedNestedMessage: TestAllTypesProto3_NestedMessage[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto3.ForeignMessage repeated_foreign_message = 49; + */ + repeatedForeignMessage: ForeignMessage[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum repeated_nested_enum = 51; + */ + repeatedNestedEnum: TestAllTypesProto3_NestedEnum[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto3.ForeignEnum repeated_foreign_enum = 52; + */ + repeatedForeignEnum: ForeignEnum[]; + + /** + * @generated from field: repeated string repeated_string_piece = 54; + */ + repeatedStringPiece: string[]; + + /** + * @generated from field: repeated string repeated_cord = 55; + */ + repeatedCord: string[]; + + /** + * Packed + * + * @generated from field: repeated int32 packed_int32 = 75; + */ + packedInt32: number[]; + + /** + * @generated from field: repeated int64 packed_int64 = 76; + */ + packedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 packed_uint32 = 77; + */ + packedUint32: number[]; + + /** + * @generated from field: repeated uint64 packed_uint64 = 78; + */ + packedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 packed_sint32 = 79; + */ + packedSint32: number[]; + + /** + * @generated from field: repeated sint64 packed_sint64 = 80; + */ + packedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 packed_fixed32 = 81; + */ + packedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 packed_fixed64 = 82; + */ + packedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 packed_sfixed32 = 83; + */ + packedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 packed_sfixed64 = 84; + */ + packedSfixed64: bigint[]; + + /** + * @generated from field: repeated float packed_float = 85; + */ + packedFloat: number[]; + + /** + * @generated from field: repeated double packed_double = 86; + */ + packedDouble: number[]; + + /** + * @generated from field: repeated bool packed_bool = 87; + */ + packedBool: boolean[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum packed_nested_enum = 88; + */ + packedNestedEnum: TestAllTypesProto3_NestedEnum[]; + + /** + * Unpacked + * + * @generated from field: repeated int32 unpacked_int32 = 89; + */ + unpackedInt32: number[]; + + /** + * @generated from field: repeated int64 unpacked_int64 = 90; + */ + unpackedInt64: bigint[]; + + /** + * @generated from field: repeated uint32 unpacked_uint32 = 91; + */ + unpackedUint32: number[]; + + /** + * @generated from field: repeated uint64 unpacked_uint64 = 92; + */ + unpackedUint64: bigint[]; + + /** + * @generated from field: repeated sint32 unpacked_sint32 = 93; + */ + unpackedSint32: number[]; + + /** + * @generated from field: repeated sint64 unpacked_sint64 = 94; + */ + unpackedSint64: bigint[]; + + /** + * @generated from field: repeated fixed32 unpacked_fixed32 = 95; + */ + unpackedFixed32: number[]; + + /** + * @generated from field: repeated fixed64 unpacked_fixed64 = 96; + */ + unpackedFixed64: bigint[]; + + /** + * @generated from field: repeated sfixed32 unpacked_sfixed32 = 97; + */ + unpackedSfixed32: number[]; + + /** + * @generated from field: repeated sfixed64 unpacked_sfixed64 = 98; + */ + unpackedSfixed64: bigint[]; + + /** + * @generated from field: repeated float unpacked_float = 99; + */ + unpackedFloat: number[]; + + /** + * @generated from field: repeated double unpacked_double = 100; + */ + unpackedDouble: number[]; + + /** + * @generated from field: repeated bool unpacked_bool = 101; + */ + unpackedBool: boolean[]; + + /** + * @generated from field: repeated protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum unpacked_nested_enum = 102; + */ + unpackedNestedEnum: TestAllTypesProto3_NestedEnum[]; + + /** + * Map + * + * @generated from field: map map_int32_int32 = 56; + */ + mapInt32Int32: { [key: number]: number }; + + /** + * @generated from field: map map_int64_int64 = 57; + */ + mapInt64Int64: { [key: string]: bigint }; + + /** + * @generated from field: map map_uint32_uint32 = 58; + */ + mapUint32Uint32: { [key: number]: number }; + + /** + * @generated from field: map map_uint64_uint64 = 59; + */ + mapUint64Uint64: { [key: string]: bigint }; + + /** + * @generated from field: map map_sint32_sint32 = 60; + */ + mapSint32Sint32: { [key: number]: number }; + + /** + * @generated from field: map map_sint64_sint64 = 61; + */ + mapSint64Sint64: { [key: string]: bigint }; + + /** + * @generated from field: map map_fixed32_fixed32 = 62; + */ + mapFixed32Fixed32: { [key: number]: number }; + + /** + * @generated from field: map map_fixed64_fixed64 = 63; + */ + mapFixed64Fixed64: { [key: string]: bigint }; + + /** + * @generated from field: map map_sfixed32_sfixed32 = 64; + */ + mapSfixed32Sfixed32: { [key: number]: number }; + + /** + * @generated from field: map map_sfixed64_sfixed64 = 65; + */ + mapSfixed64Sfixed64: { [key: string]: bigint }; + + /** + * @generated from field: map map_int32_float = 66; + */ + mapInt32Float: { [key: number]: number }; + + /** + * @generated from field: map map_int32_double = 67; + */ + mapInt32Double: { [key: number]: number }; + + /** + * @generated from field: map map_bool_bool = 68; + */ + mapBoolBool: { [key: string]: boolean }; + + /** + * @generated from field: map map_string_string = 69; + */ + mapStringString: { [key: string]: string }; + + /** + * @generated from field: map map_string_bytes = 70; + */ + mapStringBytes: { [key: string]: Uint8Array }; + + /** + * @generated from field: map map_string_nested_message = 71; + */ + mapStringNestedMessage: { [key: string]: TestAllTypesProto3_NestedMessage }; + + /** + * @generated from field: map map_string_foreign_message = 72; + */ + mapStringForeignMessage: { [key: string]: ForeignMessage }; + + /** + * @generated from field: map map_string_nested_enum = 73; + */ + mapStringNestedEnum: { [key: string]: TestAllTypesProto3_NestedEnum }; + + /** + * @generated from field: map map_string_foreign_enum = 74; + */ + mapStringForeignEnum: { [key: string]: ForeignEnum }; + + /** + * @generated from oneof protobuf_test_messages.editions.proto3.TestAllTypesProto3.oneof_field + */ + oneofField: { + /** + * @generated from field: uint32 oneof_uint32 = 111; + */ + value: number; + case: "oneofUint32"; + } | { + /** + * @generated from field: protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage oneof_nested_message = 112; + */ + value: TestAllTypesProto3_NestedMessage; + case: "oneofNestedMessage"; + } | { + /** + * @generated from field: string oneof_string = 113; + */ + value: string; + case: "oneofString"; + } | { + /** + * @generated from field: bytes oneof_bytes = 114; + */ + value: Uint8Array; + case: "oneofBytes"; + } | { + /** + * @generated from field: bool oneof_bool = 115; + */ + value: boolean; + case: "oneofBool"; + } | { + /** + * @generated from field: uint64 oneof_uint64 = 116; + */ + value: bigint; + case: "oneofUint64"; + } | { + /** + * @generated from field: float oneof_float = 117; + */ + value: number; + case: "oneofFloat"; + } | { + /** + * @generated from field: double oneof_double = 118; + */ + value: number; + case: "oneofDouble"; + } | { + /** + * @generated from field: protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum oneof_enum = 119; + */ + value: TestAllTypesProto3_NestedEnum; + case: "oneofEnum"; + } | { + /** + * @generated from field: google.protobuf.NullValue oneof_null_value = 120; + */ + value: NullValue; + case: "oneofNullValue"; + } | { case: undefined; value?: undefined }; + + /** + * Well-known types + * + * @generated from field: google.protobuf.BoolValue optional_bool_wrapper = 201; + */ + optionalBoolWrapper?: boolean; + + /** + * @generated from field: google.protobuf.Int32Value optional_int32_wrapper = 202; + */ + optionalInt32Wrapper?: number; + + /** + * @generated from field: google.protobuf.Int64Value optional_int64_wrapper = 203; + */ + optionalInt64Wrapper?: bigint; + + /** + * @generated from field: google.protobuf.UInt32Value optional_uint32_wrapper = 204; + */ + optionalUint32Wrapper?: number; + + /** + * @generated from field: google.protobuf.UInt64Value optional_uint64_wrapper = 205; + */ + optionalUint64Wrapper?: bigint; + + /** + * @generated from field: google.protobuf.FloatValue optional_float_wrapper = 206; + */ + optionalFloatWrapper?: number; + + /** + * @generated from field: google.protobuf.DoubleValue optional_double_wrapper = 207; + */ + optionalDoubleWrapper?: number; + + /** + * @generated from field: google.protobuf.StringValue optional_string_wrapper = 208; + */ + optionalStringWrapper?: string; + + /** + * @generated from field: google.protobuf.BytesValue optional_bytes_wrapper = 209; + */ + optionalBytesWrapper?: Uint8Array; + + /** + * @generated from field: repeated google.protobuf.BoolValue repeated_bool_wrapper = 211; + */ + repeatedBoolWrapper: BoolValue[]; + + /** + * @generated from field: repeated google.protobuf.Int32Value repeated_int32_wrapper = 212; + */ + repeatedInt32Wrapper: Int32Value[]; + + /** + * @generated from field: repeated google.protobuf.Int64Value repeated_int64_wrapper = 213; + */ + repeatedInt64Wrapper: Int64Value[]; + + /** + * @generated from field: repeated google.protobuf.UInt32Value repeated_uint32_wrapper = 214; + */ + repeatedUint32Wrapper: UInt32Value[]; + + /** + * @generated from field: repeated google.protobuf.UInt64Value repeated_uint64_wrapper = 215; + */ + repeatedUint64Wrapper: UInt64Value[]; + + /** + * @generated from field: repeated google.protobuf.FloatValue repeated_float_wrapper = 216; + */ + repeatedFloatWrapper: FloatValue[]; + + /** + * @generated from field: repeated google.protobuf.DoubleValue repeated_double_wrapper = 217; + */ + repeatedDoubleWrapper: DoubleValue[]; + + /** + * @generated from field: repeated google.protobuf.StringValue repeated_string_wrapper = 218; + */ + repeatedStringWrapper: StringValue[]; + + /** + * @generated from field: repeated google.protobuf.BytesValue repeated_bytes_wrapper = 219; + */ + repeatedBytesWrapper: BytesValue[]; + + /** + * @generated from field: google.protobuf.Duration optional_duration = 301; + */ + optionalDuration?: Duration; + + /** + * @generated from field: google.protobuf.Timestamp optional_timestamp = 302; + */ + optionalTimestamp?: Timestamp; + + /** + * @generated from field: google.protobuf.FieldMask optional_field_mask = 303; + */ + optionalFieldMask?: FieldMask; + + /** + * @generated from field: google.protobuf.Struct optional_struct = 304; + */ + optionalStruct?: Struct; + + /** + * @generated from field: google.protobuf.Any optional_any = 305; + */ + optionalAny?: Any; + + /** + * @generated from field: google.protobuf.Value optional_value = 306; + */ + optionalValue?: Value; + + /** + * @generated from field: google.protobuf.NullValue optional_null_value = 307; + */ + optionalNullValue: NullValue; + + /** + * @generated from field: repeated google.protobuf.Duration repeated_duration = 311; + */ + repeatedDuration: Duration[]; + + /** + * @generated from field: repeated google.protobuf.Timestamp repeated_timestamp = 312; + */ + repeatedTimestamp: Timestamp[]; + + /** + * @generated from field: repeated google.protobuf.FieldMask repeated_fieldmask = 313; + */ + repeatedFieldmask: FieldMask[]; + + /** + * @generated from field: repeated google.protobuf.Struct repeated_struct = 324; + */ + repeatedStruct: Struct[]; + + /** + * @generated from field: repeated google.protobuf.Any repeated_any = 315; + */ + repeatedAny: Any[]; + + /** + * @generated from field: repeated google.protobuf.Value repeated_value = 316; + */ + repeatedValue: Value[]; + + /** + * @generated from field: repeated google.protobuf.ListValue repeated_list_value = 317; + */ + repeatedListValue: ListValue[]; + + /** + * Test field-name-to-JSON-name convention. + * (protobuf says names can be any valid C/C++ identifier.) + * + * @generated from field: int32 fieldname1 = 401; + */ + fieldname1: number; + + /** + * @generated from field: int32 field_name2 = 402; + */ + fieldName2: number; + + /** + * @generated from field: int32 _field_name3 = 403; + */ + FieldName3: number; + + /** + * @generated from field: int32 field__name4_ = 404; + */ + fieldName4: number; + + /** + * @generated from field: int32 field0name5 = 405; + */ + field0name5: number; + + /** + * @generated from field: int32 field_0_name6 = 406; + */ + field0Name6: number; + + /** + * @generated from field: int32 fieldName7 = 407; + */ + fieldName7: number; + + /** + * @generated from field: int32 FieldName8 = 408; + */ + FieldName8: number; + + /** + * @generated from field: int32 field_Name9 = 409; + */ + fieldName9: number; + + /** + * @generated from field: int32 Field_Name10 = 410; + */ + FieldName10: number; + + /** + * @generated from field: int32 FIELD_NAME11 = 411; + */ + FIELDNAME11: number; + + /** + * @generated from field: int32 FIELD_name12 = 412; + */ + FIELDName12: number; + + /** + * @generated from field: int32 __field_name13 = 413; + */ + FieldName13: number; + + /** + * @generated from field: int32 __Field_name14 = 414; + */ + FieldName14: number; + + /** + * @generated from field: int32 field__name15 = 415; + */ + fieldName15: number; + + /** + * @generated from field: int32 field__Name16 = 416; + */ + fieldName16: number; + + /** + * @generated from field: int32 field_name17__ = 417; + */ + fieldName17: number; + + /** + * @generated from field: int32 Field_name18__ = 418; + */ + FieldName18: number; +}; + +// Describes the message protobuf_test_messages.editions.proto3.TestAllTypesProto3. +// Use `create(TestAllTypesProto3Desc)` to create a new TestAllTypesProto3. +export const TestAllTypesProto3Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 0); + +/** + * @generated from message protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage + */ +export type TestAllTypesProto3_NestedMessage = Message<"protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage"> & { + /** + * @generated from field: int32 a = 1; + */ + a: number; + + /** + * @generated from field: protobuf_test_messages.editions.proto3.TestAllTypesProto3 corecursive = 2; + */ + corecursive?: TestAllTypesProto3; +}; + +// Describes the message protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage. +// Use `create(TestAllTypesProto3_NestedMessageDesc)` to create a new TestAllTypesProto3_NestedMessage. +export const TestAllTypesProto3_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 0, 0); + +/** + * @generated from enum protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum + */ +export enum TestAllTypesProto3_NestedEnum { + /** + * @generated from enum value: FOO = 0; + */ + FOO = 0, + + /** + * @generated from enum value: BAR = 1; + */ + BAR = 1, + + /** + * @generated from enum value: BAZ = 2; + */ + BAZ = 2, + + /** + * Intentionally negative. + * + * @generated from enum value: NEG = -1; + */ + NEG = -1, +} + +// Describes the enum protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum. +export const TestAllTypesProto3_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 0, 0); + +/** + * @generated from enum protobuf_test_messages.editions.proto3.TestAllTypesProto3.AliasedEnum + */ +export enum TestAllTypesProto3_AliasedEnum { + /** + * @generated from enum value: ALIAS_FOO = 0; + */ + ALIAS_FOO = 0, + + /** + * @generated from enum value: ALIAS_BAR = 1; + */ + ALIAS_BAR = 1, + + /** + * @generated from enum value: ALIAS_BAZ = 2; + */ + ALIAS_BAZ = 2, + + /** + * @generated from enum value: MOO = 2; + */ + MOO = 2, + + /** + * @generated from enum value: moo = 2; + */ + moo = 2, + + /** + * @generated from enum value: bAz = 2; + */ + bAz = 2, +} + +// Describes the enum protobuf_test_messages.editions.proto3.TestAllTypesProto3.AliasedEnum. +export const TestAllTypesProto3_AliasedEnumDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 0, 1); + +/** + * @generated from message protobuf_test_messages.editions.proto3.ForeignMessage + */ +export type ForeignMessage = Message<"protobuf_test_messages.editions.proto3.ForeignMessage"> & { + /** + * @generated from field: int32 c = 1; + */ + c: number; +}; + +// Describes the message protobuf_test_messages.editions.proto3.ForeignMessage. +// Use `create(ForeignMessageDesc)` to create a new ForeignMessage. +export const ForeignMessageDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 1); + +/** + * @generated from message protobuf_test_messages.editions.proto3.NullHypothesisProto3 + */ +export type NullHypothesisProto3 = Message<"protobuf_test_messages.editions.proto3.NullHypothesisProto3"> & { +}; + +// Describes the message protobuf_test_messages.editions.proto3.NullHypothesisProto3. +// Use `create(NullHypothesisProto3Desc)` to create a new NullHypothesisProto3. +export const NullHypothesisProto3Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 2); + +/** + * @generated from message protobuf_test_messages.editions.proto3.EnumOnlyProto3 + */ +export type EnumOnlyProto3 = Message<"protobuf_test_messages.editions.proto3.EnumOnlyProto3"> & { +}; + +// Describes the message protobuf_test_messages.editions.proto3.EnumOnlyProto3. +// Use `create(EnumOnlyProto3Desc)` to create a new EnumOnlyProto3. +export const EnumOnlyProto3Desc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 3); + +/** + * @generated from enum protobuf_test_messages.editions.proto3.EnumOnlyProto3.Bool + */ +export enum EnumOnlyProto3_Bool { + /** + * @generated from enum value: kFalse = 0; + */ + kFalse = 0, + + /** + * @generated from enum value: kTrue = 1; + */ + kTrue = 1, +} + +// Describes the enum protobuf_test_messages.editions.proto3.EnumOnlyProto3.Bool. +export const EnumOnlyProto3_BoolDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 3, 0); + +/** + * @generated from enum protobuf_test_messages.editions.proto3.ForeignEnum + */ +export enum ForeignEnum { + /** + * @generated from enum value: FOREIGN_FOO = 0; + */ + FOREIGN_FOO = 0, + + /** + * @generated from enum value: FOREIGN_BAR = 1; + */ + FOREIGN_BAR = 1, + + /** + * @generated from enum value: FOREIGN_BAZ = 2; + */ + FOREIGN_BAZ = 2, +} + +// Describes the enum protobuf_test_messages.editions.proto3.ForeignEnum. +export const ForeignEnumDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_test_messages_proto3_editions, 0); + diff --git a/packages/protobuf-test/extra/edition2023-map-encoding.proto b/packages/protobuf-test/extra/edition2023-map-encoding.proto index 4ce5ab84f..8954fc1dc 100644 --- a/packages/protobuf-test/extra/edition2023-map-encoding.proto +++ b/packages/protobuf-test/extra/edition2023-map-encoding.proto @@ -14,7 +14,6 @@ edition = "2023"; package spec; -import "google/protobuf/wrappers.proto"; option features.message_encoding = DELIMITED; diff --git a/packages/protobuf-test/package.json b/packages/protobuf-test/package.json index 7493176f7..765af774c 100644 --- a/packages/protobuf-test/package.json +++ b/packages/protobuf-test/package.json @@ -8,8 +8,8 @@ "build:copy-gen-js": "rsync -a --exclude '*.js' src/gen/js dist/types/gen && rsync -a --exclude '*.d.ts' src/gen/js dist/esm/gen", "pregenerate": "rm -rf src/gen/*/* descriptorset.*", "generate": "npm run generate:ts && npm run generate:js", - "generate:ts": "protoc --experimental_editions --es_out=src/gen/ts --es_opt=ts_nocheck=false,target=ts --proto_path=. $(buf ls-files extra) --proto_path=$(upstream-include test) $(upstream-files test) google/protobuf/type.proto", - "generate:js": "protoc --experimental_editions --es_out=src/gen/js --es_opt=ts_nocheck=false,target=js+dts --proto_path=. $(buf ls-files extra) --proto_path=$(upstream-include test) $(upstream-files test) google/protobuf/type.proto", + "generate:ts": "protoc --es_out=src/gen/ts --es_opt=ts_nocheck=false,target=ts --proto_path=. $(buf ls-files extra) --proto_path=$(upstream-include test) $(upstream-files test) google/protobuf/type.proto", + "generate:js": "protoc --es_out=src/gen/js --es_opt=ts_nocheck=false,target=js+dts --proto_path=. $(buf ls-files extra) --proto_path=$(upstream-include test) $(upstream-files test) google/protobuf/type.proto", "postgenerate": "license-header src/gen", "perf": "tsx src/perf.ts", "test": "npm run test:bigint && npm run test:string", diff --git a/packages/protobuf-test/src/codegenv1/boot.test.ts b/packages/protobuf-test/src/codegenv1/boot.test.ts index 11c22a894..38a42d896 100644 --- a/packages/protobuf-test/src/codegenv1/boot.test.ts +++ b/packages/protobuf-test/src/codegenv1/boot.test.ts @@ -27,6 +27,7 @@ import { FieldDescriptorProtoDesc, FileDescriptorProtoDesc, FileDescriptorSetDesc, + FieldOptionsDesc, } from "@bufbuild/protobuf/wkt"; import assert from "node:assert"; import { @@ -104,6 +105,9 @@ describe("bootFileDescriptorProto()", () => { clearField(DescriptorProtoDesc, d, "reservedName"); for (const f of d.field) { clearField(FieldDescriptorProtoDesc, f, "jsonName"); + if (f.options) { + clearField(FieldOptionsDesc, f.options, "featureSupport"); + } } for (const n of d.nestedType) { stripLikeBoot(n); diff --git a/packages/protobuf-test/src/gen/js/extra/edition2023-map-encoding_pb.js b/packages/protobuf-test/src/gen/js/extra/edition2023-map-encoding_pb.js index 7c27b3c5b..9ed07346f 100644 --- a/packages/protobuf-test/src/gen/js/extra/edition2023-map-encoding_pb.js +++ b/packages/protobuf-test/src/gen/js/extra/edition2023-map-encoding_pb.js @@ -17,10 +17,9 @@ /* eslint-disable */ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_wrappers } from "@bufbuild/protobuf/wkt"; export const fileDesc_extra_edition2023_map_encoding = /*@__PURE__*/ - fileDesc("CiRleHRyYS9lZGl0aW9uMjAyMy1tYXAtZW5jb2RpbmcucHJvdG8SBHNwZWMilgEKHUVkaXRpb24yMDIzTWFwRW5jb2RpbmdNZXNzYWdlEkQKCW1hcF9maWVsZBhNIAMoCzIxLnNwZWMuRWRpdGlvbjIwMjNNYXBFbmNvZGluZ01lc3NhZ2UuTWFwRmllbGRFbnRyeRovCg1NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoCDoCOAFCBZIDAigCYghlZGl0aW9uc3DoBw", [fileDesc_google_protobuf_wrappers]); + fileDesc("CiRleHRyYS9lZGl0aW9uMjAyMy1tYXAtZW5jb2RpbmcucHJvdG8SBHNwZWMilgEKHUVkaXRpb24yMDIzTWFwRW5jb2RpbmdNZXNzYWdlEkQKCW1hcF9maWVsZBhNIAMoCzIxLnNwZWMuRWRpdGlvbjIwMjNNYXBFbmNvZGluZ01lc3NhZ2UuTWFwRmllbGRFbnRyeRovCg1NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoCDoCOAFCBZIDAigCYghlZGl0aW9uc3DoBw"); // Describes the message spec.Edition2023MapEncodingMessage. Use `create(Edition2023MapEncodingMessageDesc)` to create a new Edition2023MapEncodingMessage. export const Edition2023MapEncodingMessageDesc = /*@__PURE__*/ diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/map_lite_unittest_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/map_lite_unittest_pb.d.ts deleted file mode 100644 index 3f680ac64..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/map_lite_unittest_pb.d.ts +++ /dev/null @@ -1,394 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/map_lite_unittest.proto (package protobuf_unittest, syntax proto2) -/* eslint-disable */ - -import type { GenDescEnum, GenDescExtension, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; -import type { ForeignMessageLite, TestAllExtensionsLite, TestAllTypesLite } from "./unittest_lite_pb.js"; - -export declare const fileDesc_google_protobuf_map_lite_unittest: GenDescFile; - -/** - * @generated from message protobuf_unittest.TestMapLite - */ -export declare type TestMapLite = Message<"protobuf_unittest.TestMapLite"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnumLite }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessageLite }; - - /** - * @generated from field: map teboring = 18; - */ - teboring: { [key: number]: number }; -}; - -// Describes the message protobuf_unittest.TestMapLite. Use `create(TestMapLiteDesc)` to create a new TestMapLite. -export declare const TestMapLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestArenaMapLite - */ -export declare type TestArenaMapLite = Message<"protobuf_unittest.TestArenaMapLite"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnumLite }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessageArenaLite }; -}; - -// Describes the message protobuf_unittest.TestArenaMapLite. Use `create(TestArenaMapLiteDesc)` to create a new TestArenaMapLite. -export declare const TestArenaMapLiteDesc: GenDescMessage; - -/** - * Test embedded message with required fields - * - * @generated from message protobuf_unittest.TestRequiredMessageMapLite - */ -export declare type TestRequiredMessageMapLite = Message<"protobuf_unittest.TestRequiredMessageMapLite"> & { - /** - * @generated from field: map map_field = 1; - */ - mapField: { [key: number]: TestRequiredLite }; -}; - -// Describes the message protobuf_unittest.TestRequiredMessageMapLite. Use `create(TestRequiredMessageMapLiteDesc)` to create a new TestRequiredMessageMapLite. -export declare const TestRequiredMessageMapLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestEnumMapLite - */ -export declare type TestEnumMapLite = Message<"protobuf_unittest.TestEnumMapLite"> & { - /** - * @generated from field: map known_map_field = 101; - */ - knownMapField: { [key: number]: Proto2MapEnumLite }; - - /** - * @generated from field: map unknown_map_field = 102; - */ - unknownMapField: { [key: number]: Proto2MapEnumLite }; -}; - -// Describes the message protobuf_unittest.TestEnumMapLite. Use `create(TestEnumMapLiteDesc)` to create a new TestEnumMapLite. -export declare const TestEnumMapLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestEnumMapPlusExtraLite - */ -export declare type TestEnumMapPlusExtraLite = Message<"protobuf_unittest.TestEnumMapPlusExtraLite"> & { - /** - * @generated from field: map known_map_field = 101; - */ - knownMapField: { [key: number]: Proto2MapEnumPlusExtraLite }; - - /** - * @generated from field: map unknown_map_field = 102; - */ - unknownMapField: { [key: number]: Proto2MapEnumPlusExtraLite }; -}; - -// Describes the message protobuf_unittest.TestEnumMapPlusExtraLite. Use `create(TestEnumMapPlusExtraLiteDesc)` to create a new TestEnumMapPlusExtraLite. -export declare const TestEnumMapPlusExtraLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestMessageMapLite - */ -export declare type TestMessageMapLite = Message<"protobuf_unittest.TestMessageMapLite"> & { - /** - * @generated from field: map map_int32_message = 1; - */ - mapInt32Message: { [key: number]: TestAllTypesLite }; -}; - -// Describes the message protobuf_unittest.TestMessageMapLite. Use `create(TestMessageMapLiteDesc)` to create a new TestMessageMapLite. -export declare const TestMessageMapLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestRequiredLite - */ -export declare type TestRequiredLite = Message<"protobuf_unittest.TestRequiredLite"> & { - /** - * @generated from field: required int32 a = 1; - */ - a: number; - - /** - * @generated from field: required int32 b = 2; - */ - b: number; - - /** - * @generated from field: required int32 c = 3; - */ - c: number; -}; - -// Describes the message protobuf_unittest.TestRequiredLite. Use `create(TestRequiredLiteDesc)` to create a new TestRequiredLite. -export declare const TestRequiredLiteDesc: GenDescMessage; - -/** - * @generated from extension: optional protobuf_unittest.TestRequiredLite single = 1000; - */ -export declare const TestRequiredLite_single: GenDescExtension; - -/** - * @generated from message protobuf_unittest.ForeignMessageArenaLite - */ -export declare type ForeignMessageArenaLite = Message<"protobuf_unittest.ForeignMessageArenaLite"> & { - /** - * @generated from field: optional int32 c = 1; - */ - c: number; -}; - -// Describes the message protobuf_unittest.ForeignMessageArenaLite. Use `create(ForeignMessageArenaLiteDesc)` to create a new ForeignMessageArenaLite. -export declare const ForeignMessageArenaLiteDesc: GenDescMessage; - -/** - * @generated from enum protobuf_unittest.Proto2MapEnumLite - */ -export enum Proto2MapEnumLite { - /** - * @generated from enum value: PROTO2_MAP_ENUM_FOO_LITE = 0; - */ - PROTO2_MAP_ENUM_FOO_LITE = 0, - - /** - * @generated from enum value: PROTO2_MAP_ENUM_BAR_LITE = 1; - */ - PROTO2_MAP_ENUM_BAR_LITE = 1, - - /** - * @generated from enum value: PROTO2_MAP_ENUM_BAZ_LITE = 2; - */ - PROTO2_MAP_ENUM_BAZ_LITE = 2, -} - -// Describes the enum protobuf_unittest.Proto2MapEnumLite. -export declare const Proto2MapEnumLiteDesc: GenDescEnum; - -/** - * @generated from enum protobuf_unittest.Proto2MapEnumPlusExtraLite - */ -export enum Proto2MapEnumPlusExtraLite { - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_FOO_LITE = 0; - */ - E_PROTO2_MAP_ENUM_FOO_LITE = 0, - - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_BAR_LITE = 1; - */ - E_PROTO2_MAP_ENUM_BAR_LITE = 1, - - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_BAZ_LITE = 2; - */ - E_PROTO2_MAP_ENUM_BAZ_LITE = 2, - - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_EXTRA_LITE = 3; - */ - E_PROTO2_MAP_ENUM_EXTRA_LITE = 3, -} - -// Describes the enum protobuf_unittest.Proto2MapEnumPlusExtraLite. -export declare const Proto2MapEnumPlusExtraLiteDesc: GenDescEnum; - -/** - * @generated from enum protobuf_unittest.MapEnumLite - */ -export enum MapEnumLite { - /** - * @generated from enum value: MAP_ENUM_FOO_LITE = 0; - */ - MAP_ENUM_FOO_LITE = 0, - - /** - * @generated from enum value: MAP_ENUM_BAR_LITE = 1; - */ - MAP_ENUM_BAR_LITE = 1, - - /** - * @generated from enum value: MAP_ENUM_BAZ_LITE = 2; - */ - MAP_ENUM_BAZ_LITE = 2, -} - -// Describes the enum protobuf_unittest.MapEnumLite. -export declare const MapEnumLiteDesc: GenDescEnum; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/map_lite_unittest_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/map_lite_unittest_pb.js deleted file mode 100644 index 94dfbb11b..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/map_lite_unittest_pb.js +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/map_lite_unittest.proto (package protobuf_unittest, syntax proto2) -/* eslint-disable */ - -import { enumDesc, extDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest_lite } from "./unittest_lite_pb.js"; - -export const fileDesc_google_protobuf_map_lite_unittest = /*@__PURE__*/ - fileDesc("Cidnb29nbGUvcHJvdG9idWYvbWFwX2xpdGVfdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0ItcTCgtUZXN0TWFwTGl0ZRJKCg9tYXBfaW50MzJfaW50MzIYASADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkludDMyRW50cnkSSgoPbWFwX2ludDY0X2ludDY0GAIgAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwSW50NjRJbnQ2NEVudHJ5Ek4KEW1hcF91aW50MzJfdWludDMyGAMgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwVWludDMyVWludDMyRW50cnkSTgoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBVaW50NjRVaW50NjRFbnRyeRJOChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ek4KEW1hcF9zaW50NjRfc2ludDY0GAYgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwU2ludDY0U2ludDY0RW50cnkSUgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSUgoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSVgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjcucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5ElYKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBgKIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRJKCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkZsb2F0RW50cnkSTAoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEludDMyRG91YmxlRW50cnkSRgoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEJvb2xCb29sRW50cnkSTgoRbWFwX3N0cmluZ19zdHJpbmcYDiADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBTdHJpbmdTdHJpbmdFbnRyeRJKCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkJ5dGVzRW50cnkSSAoObWFwX2ludDMyX2VudW0YECADKAsyMC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkVudW1FbnRyeRJdChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMjoucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5Ej4KCHRlYm9yaW5nGBIgAygLMiwucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuVGVib3JpbmdFbnRyeRo0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjQKEk1hcEludDMyQnl0ZXNFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAw6AjgBGlMKEU1hcEludDMyRW51bUVudHJ5EgsKA2tleRgBIAEoBRItCgV2YWx1ZRgCIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcEVudW1MaXRlOgI4ARpkChtNYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgFEjQKBXZhbHVlGAIgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VMaXRlOgI4ARovCg1UZWJvcmluZ0VudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEixRMKEFRlc3RBcmVuYU1hcExpdGUSTwoPbWFwX2ludDMyX2ludDMyGAEgAygLMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkludDMyRW50cnkSTwoPbWFwX2ludDY0X2ludDY0GAIgAygLMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQ2NEludDY0RW50cnkSUwoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFVpbnQzMlVpbnQzMkVudHJ5ElMKEW1hcF91aW50NjRfdWludDY0GAQgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBVaW50NjRVaW50NjRFbnRyeRJTChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcExpdGUuTWFwU2ludDMyU2ludDMyRW50cnkSUwoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5ElcKE21hcF9maXhlZDMyX2ZpeGVkMzIYByADKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSVwoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcExpdGUuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJbChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRJbChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRJPCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyNi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcEludDMyRmxvYXRFbnRyeRJRChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjcucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkRvdWJsZUVudHJ5EksKDW1hcF9ib29sX2Jvb2wYDSADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcEJvb2xCb29sRW50cnkSUwoRbWFwX3N0cmluZ19zdHJpbmcYDiADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ek8KD21hcF9pbnQzMl9ieXRlcxgPIAMoCzI2LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcExpdGUuTWFwSW50MzJCeXRlc0VudHJ5Ek0KDm1hcF9pbnQzMl9lbnVtGBAgAygLMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkVudW1FbnRyeRJiChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMj8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo0ChJNYXBJbnQzMkJ5dGVzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgMOgI4ARpTChFNYXBJbnQzMkVudW1FbnRyeRILCgNrZXkYASABKAUSLQoFdmFsdWUYAiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5NYXBFbnVtTGl0ZToCOAEaaQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoBRI5CgV2YWx1ZRgCIAEoCzIqLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlQXJlbmFMaXRlOgI4ASLCAQoaVGVzdFJlcXVpcmVkTWVzc2FnZU1hcExpdGUSTgoJbWFwX2ZpZWxkGAEgAygLMjsucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTWVzc2FnZU1hcExpdGUuTWFwRmllbGRFbnRyeRpUCg1NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRIyCgV2YWx1ZRgCIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZExpdGU6AjgBIu8CCg9UZXN0RW51bU1hcExpdGUSTgoPa25vd25fbWFwX2ZpZWxkGGUgAygLMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEVudW1NYXBMaXRlLktub3duTWFwRmllbGRFbnRyeRJSChF1bmtub3duX21hcF9maWVsZBhmIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFbnVtTWFwTGl0ZS5Vbmtub3duTWFwRmllbGRFbnRyeRpaChJLbm93bk1hcEZpZWxkRW50cnkSCwoDa2V5GAEgASgFEjMKBXZhbHVlGAIgASgOMiQucHJvdG9idWZfdW5pdHRlc3QuUHJvdG8yTWFwRW51bUxpdGU6AjgBGlwKFFVua25vd25NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRIzCgV2YWx1ZRgCIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0LlByb3RvMk1hcEVudW1MaXRlOgI4ASKcAwoYVGVzdEVudW1NYXBQbHVzRXh0cmFMaXRlElcKD2tub3duX21hcF9maWVsZBhlIAMoCzI+LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFbnVtTWFwUGx1c0V4dHJhTGl0ZS5Lbm93bk1hcEZpZWxkRW50cnkSWwoRdW5rbm93bl9tYXBfZmllbGQYZiADKAsyQC5wcm90b2J1Zl91bml0dGVzdC5UZXN0RW51bU1hcFBsdXNFeHRyYUxpdGUuVW5rbm93bk1hcEZpZWxkRW50cnkaYwoSS25vd25NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRI8CgV2YWx1ZRgCIAEoDjItLnByb3RvYnVmX3VuaXR0ZXN0LlByb3RvMk1hcEVudW1QbHVzRXh0cmFMaXRlOgI4ARplChRVbmtub3duTWFwRmllbGRFbnRyeRILCgNrZXkYASABKAUSPAoFdmFsdWUYAiABKA4yLS5wcm90b2J1Zl91bml0dGVzdC5Qcm90bzJNYXBFbnVtUGx1c0V4dHJhTGl0ZToCOAEiyAEKElRlc3RNZXNzYWdlTWFwTGl0ZRJVChFtYXBfaW50MzJfbWVzc2FnZRgBIAMoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNZXNzYWdlTWFwTGl0ZS5NYXBJbnQzMk1lc3NhZ2VFbnRyeRpbChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAUSMgoFdmFsdWUYAiABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlOgI4ASKbAQoQVGVzdFJlcXVpcmVkTGl0ZRIJCgFhGAEgAigFEgkKAWIYAiACKAUSCQoBYxgDIAIoBTJmCgZzaW5nbGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUY6AcgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTGl0ZVIGc2luZ2xlIiQKF0ZvcmVpZ25NZXNzYWdlQXJlbmFMaXRlEgkKAWMYASABKAUqbQoRUHJvdG8yTWFwRW51bUxpdGUSHAoYUFJPVE8yX01BUF9FTlVNX0ZPT19MSVRFEAASHAoYUFJPVE8yX01BUF9FTlVNX0JBUl9MSVRFEAESHAoYUFJPVE8yX01BUF9FTlVNX0JBWl9MSVRFEAIqngEKGlByb3RvMk1hcEVudW1QbHVzRXh0cmFMaXRlEh4KGkVfUFJPVE8yX01BUF9FTlVNX0ZPT19MSVRFEAASHgoaRV9QUk9UTzJfTUFQX0VOVU1fQkFSX0xJVEUQARIeChpFX1BST1RPMl9NQVBfRU5VTV9CQVpfTElURRACEiAKHEVfUFJPVE8yX01BUF9FTlVNX0VYVFJBX0xJVEUQAypSCgtNYXBFbnVtTGl0ZRIVChFNQVBfRU5VTV9GT09fTElURRAAEhUKEU1BUF9FTlVNX0JBUl9MSVRFEAESFQoRTUFQX0VOVU1fQkFaX0xJVEUQAkIFSAP4AQE", [fileDesc_google_protobuf_unittest_lite]); - -// Describes the message protobuf_unittest.TestMapLite. Use `create(TestMapLiteDesc)` to create a new TestMapLite. -export const TestMapLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 0); - -// Describes the message protobuf_unittest.TestArenaMapLite. Use `create(TestArenaMapLiteDesc)` to create a new TestArenaMapLite. -export const TestArenaMapLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 1); - -// Describes the message protobuf_unittest.TestRequiredMessageMapLite. Use `create(TestRequiredMessageMapLiteDesc)` to create a new TestRequiredMessageMapLite. -export const TestRequiredMessageMapLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 2); - -// Describes the message protobuf_unittest.TestEnumMapLite. Use `create(TestEnumMapLiteDesc)` to create a new TestEnumMapLite. -export const TestEnumMapLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 3); - -// Describes the message protobuf_unittest.TestEnumMapPlusExtraLite. Use `create(TestEnumMapPlusExtraLiteDesc)` to create a new TestEnumMapPlusExtraLite. -export const TestEnumMapPlusExtraLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 4); - -// Describes the message protobuf_unittest.TestMessageMapLite. Use `create(TestMessageMapLiteDesc)` to create a new TestMessageMapLite. -export const TestMessageMapLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 5); - -// Describes the message protobuf_unittest.TestRequiredLite. Use `create(TestRequiredLiteDesc)` to create a new TestRequiredLite. -export const TestRequiredLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 6); - -/** - * @generated from extension: optional protobuf_unittest.TestRequiredLite single = 1000; - */ -export const TestRequiredLite_single = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_map_lite_unittest, 6, 0); - -// Describes the message protobuf_unittest.ForeignMessageArenaLite. Use `create(ForeignMessageArenaLiteDesc)` to create a new ForeignMessageArenaLite. -export const ForeignMessageArenaLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 7); - -// Describes the enum protobuf_unittest.Proto2MapEnumLite. -export const Proto2MapEnumLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_lite_unittest, 0); - -/** - * @generated from enum protobuf_unittest.Proto2MapEnumLite - */ -export const Proto2MapEnumLite = /*@__PURE__*/ - tsEnum(Proto2MapEnumLiteDesc); - -// Describes the enum protobuf_unittest.Proto2MapEnumPlusExtraLite. -export const Proto2MapEnumPlusExtraLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_lite_unittest, 1); - -/** - * @generated from enum protobuf_unittest.Proto2MapEnumPlusExtraLite - */ -export const Proto2MapEnumPlusExtraLite = /*@__PURE__*/ - tsEnum(Proto2MapEnumPlusExtraLiteDesc); - -// Describes the enum protobuf_unittest.MapEnumLite. -export const MapEnumLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_lite_unittest, 2); - -/** - * @generated from enum protobuf_unittest.MapEnumLite - */ -export const MapEnumLite = /*@__PURE__*/ - tsEnum(MapEnumLiteDesc); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/map_unittest_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/map_unittest_pb.d.ts deleted file mode 100644 index 28dd060d2..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/map_unittest_pb.d.ts +++ /dev/null @@ -1,380 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/map_unittest.proto (package protobuf_unittest, syntax proto3) -/* eslint-disable */ - -// We don't put this in a package within proto2 because we need to make sure -// that the generated code doesn't depend on being in the proto2 namespace. -// In map_test_util.h we do "using namespace unittest = protobuf_unittest". - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; -import type { ForeignMessage, TestAllTypes, TestRequired } from "./unittest_pb.js"; - -export declare const fileDesc_google_protobuf_map_unittest: GenDescFile; - -/** - * Tests maps. - * - * @generated from message protobuf_unittest.TestMap - */ -export declare type TestMap = Message<"protobuf_unittest.TestMap"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnum }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessage }; - - /** - * @generated from field: map map_string_foreign_message = 18; - */ - mapStringForeignMessage: { [key: string]: ForeignMessage }; - - /** - * @generated from field: map map_int32_all_types = 19; - */ - mapInt32AllTypes: { [key: number]: TestAllTypes }; -}; - -// Describes the message protobuf_unittest.TestMap. Use `create(TestMapDesc)` to create a new TestMap. -export declare const TestMapDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestMapSubmessage - */ -export declare type TestMapSubmessage = Message<"protobuf_unittest.TestMapSubmessage"> & { - /** - * @generated from field: protobuf_unittest.TestMap test_map = 1; - */ - testMap?: TestMap; -}; - -// Describes the message protobuf_unittest.TestMapSubmessage. Use `create(TestMapSubmessageDesc)` to create a new TestMapSubmessage. -export declare const TestMapSubmessageDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestMessageMap - */ -export declare type TestMessageMap = Message<"protobuf_unittest.TestMessageMap"> & { - /** - * @generated from field: map map_int32_message = 1; - */ - mapInt32Message: { [key: number]: TestAllTypes }; -}; - -// Describes the message protobuf_unittest.TestMessageMap. Use `create(TestMessageMapDesc)` to create a new TestMessageMap. -export declare const TestMessageMapDesc: GenDescMessage; - -/** - * Two map fields share the same entry default instance. - * - * @generated from message protobuf_unittest.TestSameTypeMap - */ -export declare type TestSameTypeMap = Message<"protobuf_unittest.TestSameTypeMap"> & { - /** - * @generated from field: map map1 = 1; - */ - map1: { [key: number]: number }; - - /** - * @generated from field: map map2 = 2; - */ - map2: { [key: number]: number }; -}; - -// Describes the message protobuf_unittest.TestSameTypeMap. Use `create(TestSameTypeMapDesc)` to create a new TestSameTypeMap. -export declare const TestSameTypeMapDesc: GenDescMessage; - -/** - * Test embedded message with required fields - * - * @generated from message protobuf_unittest.TestRequiredMessageMap - */ -export declare type TestRequiredMessageMap = Message<"protobuf_unittest.TestRequiredMessageMap"> & { - /** - * @generated from field: map map_field = 1; - */ - mapField: { [key: number]: TestRequired }; -}; - -// Describes the message protobuf_unittest.TestRequiredMessageMap. Use `create(TestRequiredMessageMapDesc)` to create a new TestRequiredMessageMap. -export declare const TestRequiredMessageMapDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestArenaMap - */ -export declare type TestArenaMap = Message<"protobuf_unittest.TestArenaMap"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnum }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessage }; -}; - -// Describes the message protobuf_unittest.TestArenaMap. Use `create(TestArenaMapDesc)` to create a new TestArenaMap. -export declare const TestArenaMapDesc: GenDescMessage; - -/** - * Previously, message containing enum called Type cannot be used as value of - * map field. - * - * @generated from message protobuf_unittest.MessageContainingEnumCalledType - */ -export declare type MessageContainingEnumCalledType = Message<"protobuf_unittest.MessageContainingEnumCalledType"> & { - /** - * @generated from field: map type = 1; - */ - type: { [key: string]: MessageContainingEnumCalledType }; -}; - -// Describes the message protobuf_unittest.MessageContainingEnumCalledType. Use `create(MessageContainingEnumCalledTypeDesc)` to create a new MessageContainingEnumCalledType. -export declare const MessageContainingEnumCalledTypeDesc: GenDescMessage; - -/** - * @generated from enum protobuf_unittest.MessageContainingEnumCalledType.Type - */ -export enum MessageContainingEnumCalledType_Type { - /** - * @generated from enum value: TYPE_FOO = 0; - */ - FOO = 0, -} - -// Describes the enum protobuf_unittest.MessageContainingEnumCalledType.Type. -export declare const MessageContainingEnumCalledType_TypeDesc: GenDescEnum; - -/** - * Previously, message cannot contain map field called "entry". - * - * @generated from message protobuf_unittest.MessageContainingMapCalledEntry - */ -export declare type MessageContainingMapCalledEntry = Message<"protobuf_unittest.MessageContainingMapCalledEntry"> & { - /** - * @generated from field: map entry = 1; - */ - entry: { [key: number]: number }; -}; - -// Describes the message protobuf_unittest.MessageContainingMapCalledEntry. Use `create(MessageContainingMapCalledEntryDesc)` to create a new MessageContainingMapCalledEntry. -export declare const MessageContainingMapCalledEntryDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestRecursiveMapMessage - */ -export declare type TestRecursiveMapMessage = Message<"protobuf_unittest.TestRecursiveMapMessage"> & { - /** - * @generated from field: map a = 1; - */ - a: { [key: string]: TestRecursiveMapMessage }; -}; - -// Describes the message protobuf_unittest.TestRecursiveMapMessage. Use `create(TestRecursiveMapMessageDesc)` to create a new TestRecursiveMapMessage. -export declare const TestRecursiveMapMessageDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestI32StrMap - */ -export declare type TestI32StrMap = Message<"protobuf_unittest.TestI32StrMap"> & { - /** - * @generated from field: map m_32_str = 1; - */ - m32Str: { [key: number]: string }; -}; - -// Describes the message protobuf_unittest.TestI32StrMap. Use `create(TestI32StrMapDesc)` to create a new TestI32StrMap. -export declare const TestI32StrMapDesc: GenDescMessage; - -/** - * @generated from enum protobuf_unittest.MapEnum - */ -export enum MapEnum { - /** - * @generated from enum value: MAP_ENUM_FOO = 0; - */ - FOO = 0, - - /** - * @generated from enum value: MAP_ENUM_BAR = 1; - */ - BAR = 1, - - /** - * @generated from enum value: MAP_ENUM_BAZ = 2; - */ - BAZ = 2, -} - -// Describes the enum protobuf_unittest.MapEnum. -export declare const MapEnumDesc: GenDescEnum; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/map_unittest_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/map_unittest_pb.js deleted file mode 100644 index c4ea770c9..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/map_unittest_pb.js +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/map_unittest.proto (package protobuf_unittest, syntax proto3) -/* eslint-disable */ - -// We don't put this in a package within proto2 because we need to make sure -// that the generated code doesn't depend on being in the proto2 namespace. -// In map_test_util.h we do "using namespace unittest = protobuf_unittest". - -import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest } from "./unittest_pb.js"; - -export const fileDesc_google_protobuf_map_unittest = /*@__PURE__*/ - fileDesc("CiJnb29nbGUvcHJvdG9idWYvbWFwX3VuaXR0ZXN0LnByb3RvEhFwcm90b2J1Zl91bml0dGVzdCL/FAoHVGVzdE1hcBJGCg9tYXBfaW50MzJfaW50MzIYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMySW50MzJFbnRyeRJGCg9tYXBfaW50NjRfaW50NjQYAiADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeRJKChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwVWludDMyVWludDMyRW50cnkSSgoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5EkoKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBTaW50MzJTaW50MzJFbnRyeRJKChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU2ludDY0U2ludDY0RW50cnkSTgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRJOChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5ElIKFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhgJIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5ElIKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBgKIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EkYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwSW50MzJGbG9hdEVudHJ5EkgKEG1hcF9pbnQzMl9kb3VibGUYDCADKAsyLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMyRG91YmxlRW50cnkSQgoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwQm9vbEJvb2xFbnRyeRJKChFtYXBfc3RyaW5nX3N0cmluZxgOIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnkSRgoPbWFwX2ludDMyX2J5dGVzGA8gAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnkSRAoObWFwX2ludDMyX2VudW0YECADKAsyLC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMyRW51bUVudHJ5ElkKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRJbChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRgSIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRJNChNtYXBfaW50MzJfYWxsX3R5cGVzGBMgAygLMjAucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBJbnQzMkFsbFR5cGVzRW50cnkaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo0ChJNYXBJbnQzMkJ5dGVzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgMOgI4ARpPChFNYXBJbnQzMkVudW1FbnRyeRILCgNrZXkYASABKAUSKQoFdmFsdWUYAiABKA4yGi5wcm90b2J1Zl91bml0dGVzdC5NYXBFbnVtOgI4ARpgChtNYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgFEjAKBXZhbHVlGAIgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2U6AjgBGmEKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEjAKBXZhbHVlGAIgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2U6AjgBGlgKFU1hcEludDMyQWxsVHlwZXNFbnRyeRILCgNrZXkYASABKAUSLgoFdmFsdWUYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXM6AjgBIkEKEVRlc3RNYXBTdWJtZXNzYWdlEiwKCHRlc3RfbWFwGAEgASgLMhoucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcCK8AQoOVGVzdE1lc3NhZ2VNYXASUQoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWVzc2FnZU1hcC5NYXBJbnQzMk1lc3NhZ2VFbnRyeRpXChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAUSLgoFdmFsdWUYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXM6AjgBIuMBCg9UZXN0U2FtZVR5cGVNYXASOgoEbWFwMRgBIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RTYW1lVHlwZU1hcC5NYXAxRW50cnkSOgoEbWFwMhgCIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnkaKwoJTWFwMUVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaKwoJTWFwMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEitgEKFlRlc3RSZXF1aXJlZE1lc3NhZ2VNYXASSgoJbWFwX2ZpZWxkGAEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTWVzc2FnZU1hcC5NYXBGaWVsZEVudHJ5GlAKDU1hcEZpZWxkRW50cnkSCwoDa2V5GAEgASgFEi4KBXZhbHVlGAIgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkOgI4ASLwEgoMVGVzdEFyZW5hTWFwEksKD21hcF9pbnQzMl9pbnQzMhgBIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBJbnQzMkludDMyRW50cnkSSwoPbWFwX2ludDY0X2ludDY0GAIgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeRJPChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBVaW50MzJVaW50MzJFbnRyeRJPChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBVaW50NjRVaW50NjRFbnRyeRJPChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBTaW50MzJTaW50MzJFbnRyeRJPChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBTaW50NjRTaW50NjRFbnRyeRJTChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSUwoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI2LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5ElcKFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhgJIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSVwoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRJLCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXAuTWFwSW50MzJGbG9hdEVudHJ5Ek0KEG1hcF9pbnQzMl9kb3VibGUYDCADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXAuTWFwSW50MzJEb3VibGVFbnRyeRJHCg1tYXBfYm9vbF9ib29sGA0gAygLMjAucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEJvb2xCb29sRW50cnkSTwoRbWFwX3N0cmluZ19zdHJpbmcYDiADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnkSSwoPbWFwX2ludDMyX2J5dGVzGA8gAygLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEludDMyQnl0ZXNFbnRyeRJJCg5tYXBfaW50MzJfZW51bRgQIAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBJbnQzMkVudW1FbnRyeRJeChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMjsucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRo0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjQKEk1hcEludDMyQnl0ZXNFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAw6AjgBGk8KEU1hcEludDMyRW51bUVudHJ5EgsKA2tleRgBIAEoBRIpCgV2YWx1ZRgCIAEoDjIaLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcEVudW06AjgBGmAKG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAUSMAoFdmFsdWUYAiABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZToCOAEi5AEKH01lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGUSSgoEdHlwZRgBIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0Lk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGUuVHlwZUVudHJ5Gl8KCVR5cGVFbnRyeRILCgNrZXkYASABKAkSQQoFdmFsdWUYAiABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAinQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSTAoFZW50cnkYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdC5NZXNzYWdlQ29udGFpbmluZ01hcENhbGxlZEVudHJ5LkVudHJ5RW50cnkaLAoKRW50cnlFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIq0BChdUZXN0UmVjdXJzaXZlTWFwTWVzc2FnZRI8CgFhGAEgAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1hcE1lc3NhZ2UuQUVudHJ5GlQKBkFFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVjdXJzaXZlTWFwTWVzc2FnZToCOAEifgoNVGVzdEkzMlN0ck1hcBI+CghtXzMyX3N0chgBIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RJMzJTdHJNYXAuTTMyU3RyRW50cnkaLQoLTTMyU3RyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgJOgI4ASo/CgdNYXBFbnVtEhAKDE1BUF9FTlVNX0ZPTxAAEhAKDE1BUF9FTlVNX0JBUhABEhAKDE1BUF9FTlVNX0JBWhACQgP4AQFiBnByb3RvMw", [fileDesc_google_protobuf_unittest]); - -// Describes the message protobuf_unittest.TestMap. Use `create(TestMapDesc)` to create a new TestMap. -export const TestMapDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 0); - -// Describes the message protobuf_unittest.TestMapSubmessage. Use `create(TestMapSubmessageDesc)` to create a new TestMapSubmessage. -export const TestMapSubmessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 1); - -// Describes the message protobuf_unittest.TestMessageMap. Use `create(TestMessageMapDesc)` to create a new TestMessageMap. -export const TestMessageMapDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 2); - -// Describes the message protobuf_unittest.TestSameTypeMap. Use `create(TestSameTypeMapDesc)` to create a new TestSameTypeMap. -export const TestSameTypeMapDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 3); - -// Describes the message protobuf_unittest.TestRequiredMessageMap. Use `create(TestRequiredMessageMapDesc)` to create a new TestRequiredMessageMap. -export const TestRequiredMessageMapDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 4); - -// Describes the message protobuf_unittest.TestArenaMap. Use `create(TestArenaMapDesc)` to create a new TestArenaMap. -export const TestArenaMapDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 5); - -// Describes the message protobuf_unittest.MessageContainingEnumCalledType. Use `create(MessageContainingEnumCalledTypeDesc)` to create a new MessageContainingEnumCalledType. -export const MessageContainingEnumCalledTypeDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 6); - -// Describes the enum protobuf_unittest.MessageContainingEnumCalledType.Type. -export const MessageContainingEnumCalledType_TypeDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_unittest, 6, 0); - -/** - * @generated from enum protobuf_unittest.MessageContainingEnumCalledType.Type - */ -export const MessageContainingEnumCalledType_Type = /*@__PURE__*/ - tsEnum(MessageContainingEnumCalledType_TypeDesc); - -// Describes the message protobuf_unittest.MessageContainingMapCalledEntry. Use `create(MessageContainingMapCalledEntryDesc)` to create a new MessageContainingMapCalledEntry. -export const MessageContainingMapCalledEntryDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 7); - -// Describes the message protobuf_unittest.TestRecursiveMapMessage. Use `create(TestRecursiveMapMessageDesc)` to create a new TestRecursiveMapMessage. -export const TestRecursiveMapMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 8); - -// Describes the message protobuf_unittest.TestI32StrMap. Use `create(TestI32StrMapDesc)` to create a new TestI32StrMap. -export const TestI32StrMapDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 9); - -// Describes the enum protobuf_unittest.MapEnum. -export const MapEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_unittest, 0); - -/** - * @generated from enum protobuf_unittest.MapEnum - */ -export const MapEnum = /*@__PURE__*/ - tsEnum(MapEnumDesc); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.d.ts index dd2c8c30f..fea7818ad 100644 --- a/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.d.ts +++ b/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.d.ts @@ -559,6 +559,11 @@ export declare type TestAllTypesProto2 = Message<"protobuf_test_messages.proto2. */ data?: TestAllTypesProto2_Data; + /** + * @generated from field: optional protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField multiwordgroupfield = 204; + */ + multiwordgroupfield?: TestAllTypesProto2_MultiWordGroupField; + /** * default values * @@ -771,6 +776,24 @@ export declare type TestAllTypesProto2_Data = Message<"protobuf_test_messages.pr // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.Data. Use `create(TestAllTypesProto2_DataDesc)` to create a new TestAllTypesProto2_Data. export declare const TestAllTypesProto2_DataDesc: GenDescMessage; +/** + * @generated from message protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField + */ +export declare type TestAllTypesProto2_MultiWordGroupField = Message<"protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField"> & { + /** + * @generated from field: optional int32 group_int32 = 205; + */ + groupInt32: number; + + /** + * @generated from field: optional uint32 group_uint32 = 206; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField. Use `create(TestAllTypesProto2_MultiWordGroupFieldDesc)` to create a new TestAllTypesProto2_MultiWordGroupField. +export declare const TestAllTypesProto2_MultiWordGroupFieldDesc: GenDescMessage; + /** * message_set test case. * @@ -861,6 +884,24 @@ export declare type ForeignMessageProto2 = Message<"protobuf_test_messages.proto // Describes the message protobuf_test_messages.proto2.ForeignMessageProto2. Use `create(ForeignMessageProto2Desc)` to create a new ForeignMessageProto2. export declare const ForeignMessageProto2Desc: GenDescMessage; +/** + * @generated from message protobuf_test_messages.proto2.GroupField + */ +export declare type GroupField = Message<"protobuf_test_messages.proto2.GroupField"> & { + /** + * @generated from field: optional int32 group_int32 = 122; + */ + groupInt32: number; + + /** + * @generated from field: optional uint32 group_uint32 = 123; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.proto2.GroupField. Use `create(GroupFieldDesc)` to create a new GroupField. +export declare const GroupFieldDesc: GenDescMessage; + /** * @generated from message protobuf_test_messages.proto2.UnknownToTestAllTypes */ @@ -1339,3 +1380,8 @@ export declare const ForeignEnumProto2Desc: GenDescEnum; */ export declare const extension_int32: GenDescExtension; +/** + * @generated from extension: optional protobuf_test_messages.proto2.GroupField groupfield = 121; + */ +export declare const groupfield: GenDescExtension; + diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.js index 07a75aaec..2fb4cf3dd 100644 --- a/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.js +++ b/packages/protobuf-test/src/gen/js/google/protobuf/test_messages_proto2_pb.js @@ -21,7 +21,7 @@ import { enumDesc, extDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; export const fileDesc_google_protobuf_test_messages_proto2 = /*@__PURE__*/ - fileDesc("Cipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzIucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yIu4+ChJUZXN0QWxsVHlwZXNQcm90bzISFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSYAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESTAoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzISFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSYAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGAoMcGFja2VkX2ludDMyGEsgAygFQgIQARIYCgxwYWNrZWRfaW50NjQYTCADKANCAhABEhkKDXBhY2tlZF91aW50MzIYTSADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYTiADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYVyADKAhCAhABElwKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQARIaCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGUgAygIQgIQABJeChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQABJdCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5El0KD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnkSYQoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnkSYQoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnkSYQoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnkSYQoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnkSZQoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5EmUKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJpChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmkKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSXQoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeRJfChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnkSWQoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5EmEKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5El8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeRJwChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJyChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EmoKFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EmwKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgNSAASXwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAASFAoKb25lb2ZfYm9vbBhzIAEoCEgAEhYKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUgASgCSAASFgoMb25lb2ZfZG91YmxlGHYgASgBSAASUgoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSAASRQoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YRIiCg1kZWZhdWx0X2ludDMyGPEBIAEoBToKLTEyMzQ1Njc4ORIsCg1kZWZhdWx0X2ludDY0GPIBIAEoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfdWludDY0GPQBIAEoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF9zaW50MzIY9QEgASgROgotMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODkSJAoPZGVmYXVsdF9maXhlZDMyGPcBIAEoBzoKMjEyMzQ1Njc4ORIuCg9kZWZhdWx0X2ZpeGVkNjQY+AEgASgGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIlChBkZWZhdWx0X3NmaXhlZDMyGPkBIAEoDzoKLTEyMzQ1Njc4ORIvChBkZWZhdWx0X3NmaXhlZDY0GPoBIAEoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODkSHQoNZGVmYXVsdF9mbG9hdBj7ASABKAI6BTllKzA5Eh4KDmRlZmF1bHRfZG91YmxlGPwBIAEoAToFN2UrMjISGwoMZGVmYXVsdF9ib29sGP0BIAEoCDoEdHJ1ZRIgCg5kZWZhdWx0X3N0cmluZxj+ASABKAk6B1Jvc2VidWQSHgoNZGVmYXVsdF9ieXRlcxj/ASABKAw6Bmpvc2h1YRITCgpmaWVsZG5hbWUxGJEDIAEoBRIUCgtmaWVsZF9uYW1lMhiSAyABKAUSFQoMX2ZpZWxkX25hbWUzGJMDIAEoBRIWCg1maWVsZF9fbmFtZTRfGJQDIAEoBRIUCgtmaWVsZDBuYW1lNRiVAyABKAUSFgoNZmllbGRfMF9uYW1lNhiWAyABKAUSEwoKZmllbGROYW1lNxiXAyABKAUSEwoKRmllbGROYW1lOBiYAyABKAUSFAoLZmllbGRfTmFtZTkYmQMgASgFEhUKDEZpZWxkX05hbWUxMBiaAyABKAUSFQoMRklFTERfTkFNRTExGJsDIAEoBRIVCgxGSUVMRF9uYW1lMTIYnAMgASgFEhcKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBRIXCg5fX0ZpZWxkX25hbWUxNBieAyABKAUSFgoNZmllbGRfX25hbWUxNRifAyABKAUSFgoNZmllbGRfX05hbWUxNhigAyABKAUSFwoOZmllbGRfbmFtZTE3X18YoQMgASgFEhcKDkZpZWxkX25hbWUxOF9fGKIDIAEoBRpiCg1OZXN0ZWRNZXNzYWdlEgkKAWEYASABKAUSRgoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo1ChNNYXBTdHJpbmdCeXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEafgobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJOCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlOgI4ARpzChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJCCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yOgI4ARp4ChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSCwoDa2V5GAEgASgJEksKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW06AjgBGm0KGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSCwoDa2V5GAEgASgJEj8KBXZhbHVlGAIgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzI6AjgBGjMKBERhdGESFAoLZ3JvdXBfaW50MzIYygEgASgFEhUKDGdyb3VwX3VpbnQzMhjLASABKA0aIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARr1AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEgsKA3N0chgZIAEoCTLIAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGvQBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISCQoBaRgJIAEoBTLJAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiEKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgkKAWMYASABKAUiwQIKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxIXCg5vcHRpb25hbF9pbnQzMhjpByABKAUSGAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCRJMCg5uZXN0ZWRfbWVzc2FnZRjrByABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaCg1vcHRpb25hbGdyb3VwGOwHIAEoCjJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlVua25vd25Ub1Rlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwEhYKDW9wdGlvbmFsX2Jvb2wY7gcgASgIEhcKDnJlcGVhdGVkX2ludDMyGPMHIAMoBRoaCg1PcHRpb25hbEdyb3VwEgkKAWEYASABKAUiFgoUTnVsbEh5cG90aGVzaXNQcm90bzIiLwoORW51bU9ubHlQcm90bzIiHQoEQm9vbBIKCgZrRmFsc2UQABIJCgVrVHJ1ZRABIh8KD09uZVN0cmluZ1Byb3RvMhIMCgRkYXRhGAEgASgJIkYKEVByb3RvV2l0aEtleXdvcmRzEg4KBmlubGluZRgBIAEoBRIPCgdjb25jZXB0GAIgASgJEhAKCHJlcXVpcmVzGAMgAygJIogUChpUZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhIWCg5yZXF1aXJlZF9pbnQzMhgBIAIoBRIWCg5yZXF1aXJlZF9pbnQ2NBgCIAIoAxIXCg9yZXF1aXJlZF91aW50MzIYAyACKA0SFwoPcmVxdWlyZWRfdWludDY0GAQgAigEEhcKD3JlcXVpcmVkX3NpbnQzMhgFIAIoERIXCg9yZXF1aXJlZF9zaW50NjQYBiACKBISGAoQcmVxdWlyZWRfZml4ZWQzMhgHIAIoBxIYChByZXF1aXJlZF9maXhlZDY0GAggAigGEhkKEXJlcXVpcmVkX3NmaXhlZDMyGAkgAigPEhkKEXJlcXVpcmVkX3NmaXhlZDY0GAogAigQEhYKDnJlcXVpcmVkX2Zsb2F0GAsgAigCEhcKD3JlcXVpcmVkX2RvdWJsZRgMIAIoARIVCg1yZXF1aXJlZF9ib29sGA0gAigIEhcKD3JlcXVpcmVkX3N0cmluZxgOIAIoCRIWCg5yZXF1aXJlZF9ieXRlcxgPIAIoDBJoChdyZXF1aXJlZF9uZXN0ZWRfbWVzc2FnZRgSIAIoCzJHLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2USVQoYcmVxdWlyZWRfZm9yZWlnbl9tZXNzYWdlGBMgAigLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzISYgoUcmVxdWlyZWRfbmVzdGVkX2VudW0YFSACKA4yRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcXVpcmVkX2ZvcmVpZ25fZW51bRgWIAIoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcXVpcmVkX3N0cmluZ19waWVjZRgYIAIoCUICCAISGQoNcmVxdWlyZWRfY29yZBgZIAIoCUICCAESVAoRcmVjdXJzaXZlX21lc3NhZ2UYGyACKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhJdChpvcHRpb25hbF9yZWN1cnNpdmVfbWVzc2FnZRgcIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yEk0KBGRhdGEYyQEgAigKMj4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuRGF0YRIiCg1kZWZhdWx0X2ludDMyGPEBIAIoBToKLTEyMzQ1Njc4ORIsCg1kZWZhdWx0X2ludDY0GPIBIAIoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF91aW50MzIY8wEgAigNOgoyMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfdWludDY0GPQBIAIoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF9zaW50MzIY9QEgAigROgotMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfc2ludDY0GPYBIAIoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODkSJAoPZGVmYXVsdF9maXhlZDMyGPcBIAIoBzoKMjEyMzQ1Njc4ORIuCg9kZWZhdWx0X2ZpeGVkNjQY+AEgAigGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIlChBkZWZhdWx0X3NmaXhlZDMyGPkBIAIoDzoKLTEyMzQ1Njc4ORIvChBkZWZhdWx0X3NmaXhlZDY0GPoBIAIoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODkSHQoNZGVmYXVsdF9mbG9hdBj7ASACKAI6BTllKzA5Eh4KDmRlZmF1bHRfZG91YmxlGPwBIAIoAToFN2UrMjISGwoMZGVmYXVsdF9ib29sGP0BIAIoCDoEdHJ1ZRIgCg5kZWZhdWx0X3N0cmluZxj+ASACKAk6B1Jvc2VidWQSHgoNZGVmYXVsdF9ieXRlcxj/ASACKAw6Bmpvc2h1YRrDAQoNTmVzdGVkTWVzc2FnZRIJCgFhGAEgAigFEk4KC2NvcmVjdXJzaXZlGAIgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISVwoUb3B0aW9uYWxfY29yZWN1cnNpdmUYAyABKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhozCgREYXRhEhQKC2dyb3VwX2ludDMyGMoBIAIoBRIVCgxncm91cF91aW50MzIYywEgAigNGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEahQIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRILCgNzdHIYGSACKAky2AEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyVS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjFSE21lc3NhZ2VTZXRFeHRlbnNpb24ahAIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMhIJCgFpGAkgAigFMtkBChVtZXNzYWdlX3NldF9leHRlbnNpb24SSy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJVLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUoGCOgHEJBOKkYKEUZvcmVpZ25FbnVtUHJvdG8yEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACOloKD2V4dGVuc2lvbl9pbnQzMhIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMhh4IAEoBVIOZXh0ZW5zaW9uSW50MzJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMkgB+AEBogIGUHJvdG8y"); + fileDesc("Cipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzIucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yIpdAChJUZXN0QWxsVHlwZXNQcm90bzISFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSYAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESTAoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzISFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSYAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGAoMcGFja2VkX2ludDMyGEsgAygFQgIQARIYCgxwYWNrZWRfaW50NjQYTCADKANCAhABEhkKDXBhY2tlZF91aW50MzIYTSADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYTiADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYVyADKAhCAhABElwKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQARIaCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGUgAygIQgIQABJeChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQABJdCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5El0KD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnkSYQoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnkSYQoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnkSYQoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnkSYQoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnkSZQoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5EmUKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJpChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmkKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSXQoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeRJfChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnkSWQoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5EmEKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5El8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeRJwChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJyChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EmoKFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EmwKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgNSAASXwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAASFAoKb25lb2ZfYm9vbBhzIAEoCEgAEhYKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUgASgCSAASFgoMb25lb2ZfZG91YmxlGHYgASgBSAASUgoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSAASRQoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YRJjChNtdWx0aXdvcmRncm91cGZpZWxkGMwBIAEoCjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NdWx0aVdvcmRHcm91cEZpZWxkEiIKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5EiwKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3VpbnQzMhjzASABKA06CjIxMjM0NTY3ODkSLQoOZGVmYXVsdF91aW50NjQY9AEgASgEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3NpbnQzMhj1ASABKBE6Ci0xMjM0NTY3ODkSLQoOZGVmYXVsdF9zaW50NjQY9gEgASgSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIkCg9kZWZhdWx0X2ZpeGVkMzIY9wEgASgHOgoyMTIzNDU2Nzg5Ei4KD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5EiUKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ei8KEGRlZmF1bHRfc2ZpeGVkNjQY+gEgASgQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIdCg1kZWZhdWx0X2Zsb2F0GPsBIAEoAjoFOWUrMDkSHgoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMhIbCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlEiAKDmRlZmF1bHRfc3RyaW5nGP4BIAEoCToHUm9zZWJ1ZBIeCg1kZWZhdWx0X2J5dGVzGP8BIAEoDDoGam9zaHVhEhMKCmZpZWxkbmFtZTEYkQMgASgFEhQKC2ZpZWxkX25hbWUyGJIDIAEoBRIVCgxfZmllbGRfbmFtZTMYkwMgASgFEhYKDWZpZWxkX19uYW1lNF8YlAMgASgFEhQKC2ZpZWxkMG5hbWU1GJUDIAEoBRIWCg1maWVsZF8wX25hbWU2GJYDIAEoBRITCgpmaWVsZE5hbWU3GJcDIAEoBRITCgpGaWVsZE5hbWU4GJgDIAEoBRIUCgtmaWVsZF9OYW1lORiZAyABKAUSFQoMRmllbGRfTmFtZTEwGJoDIAEoBRIVCgxGSUVMRF9OQU1FMTEYmwMgASgFEhUKDEZJRUxEX25hbWUxMhicAyABKAUSFwoOX19maWVsZF9uYW1lMTMYnQMgASgFEhcKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBRIWCg1maWVsZF9fbmFtZTE1GJ8DIAEoBRIWCg1maWVsZF9fTmFtZTE2GKADIAEoBRIXCg5maWVsZF9uYW1lMTdfXxihAyABKAUSFwoORmllbGRfbmFtZTE4X18YogMgASgFGmIKDU5lc3RlZE1lc3NhZ2USCQoBYRgBIAEoBRJGCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMho0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjUKE01hcFN0cmluZ0J5dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ARp+ChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEk4KBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2U6AjgBGnMKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEkIKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzI6AjgBGngKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRILCgNrZXkYASABKAkSSwoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bToCOAEabQoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRILCgNrZXkYASABKAkSPwoFdmFsdWUYAiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMjoCOAEaMwoERGF0YRIUCgtncm91cF9pbnQzMhjKASABKAUSFQoMZ3JvdXBfdWludDMyGMsBIAEoDRpCChNNdWx0aVdvcmRHcm91cEZpZWxkEhQKC2dyb3VwX2ludDMyGM0BIAEoBRIVCgxncm91cF91aW50MzIYzgEgASgNGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEa9QEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRILCgNzdHIYGSABKAkyyAEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhr0AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgkKAWkYCSABKAUyyQEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFCDQoLb25lb2ZfZmllbGRKBgjoBxCQTiIhChRGb3JlaWduTWVzc2FnZVByb3RvMhIJCgFjGAEgASgFIjcKCkdyb3VwRmllbGQSEwoLZ3JvdXBfaW50MzIYeiABKAUSFAoMZ3JvdXBfdWludDMyGHsgASgNIsECChVVbmtub3duVG9UZXN0QWxsVHlwZXMSFwoOb3B0aW9uYWxfaW50MzIY6QcgASgFEhgKD29wdGlvbmFsX3N0cmluZxjqByABKAkSTAoObmVzdGVkX21lc3NhZ2UY6wcgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzISWgoNb3B0aW9uYWxncm91cBjsByABKAoyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Vbmtub3duVG9UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cBIWCg1vcHRpb25hbF9ib29sGO4HIAEoCBIXCg5yZXBlYXRlZF9pbnQzMhjzByADKAUaGgoNT3B0aW9uYWxHcm91cBIJCgFhGAEgASgFIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8yIi8KDkVudW1Pbmx5UHJvdG8yIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASIfCg9PbmVTdHJpbmdQcm90bzISDAoEZGF0YRgBIAEoCSJGChFQcm90b1dpdGhLZXl3b3JkcxIOCgZpbmxpbmUYASABKAUSDwoHY29uY2VwdBgCIAEoCRIQCghyZXF1aXJlcxgDIAMoCSKIFAoaVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISFgoOcmVxdWlyZWRfaW50MzIYASACKAUSFgoOcmVxdWlyZWRfaW50NjQYAiACKAMSFwoPcmVxdWlyZWRfdWludDMyGAMgAigNEhcKD3JlcXVpcmVkX3VpbnQ2NBgEIAIoBBIXCg9yZXF1aXJlZF9zaW50MzIYBSACKBESFwoPcmVxdWlyZWRfc2ludDY0GAYgAigSEhgKEHJlcXVpcmVkX2ZpeGVkMzIYByACKAcSGAoQcmVxdWlyZWRfZml4ZWQ2NBgIIAIoBhIZChFyZXF1aXJlZF9zZml4ZWQzMhgJIAIoDxIZChFyZXF1aXJlZF9zZml4ZWQ2NBgKIAIoEBIWCg5yZXF1aXJlZF9mbG9hdBgLIAIoAhIXCg9yZXF1aXJlZF9kb3VibGUYDCACKAESFQoNcmVxdWlyZWRfYm9vbBgNIAIoCBIXCg9yZXF1aXJlZF9zdHJpbmcYDiACKAkSFgoOcmVxdWlyZWRfYnl0ZXMYDyACKAwSaAoXcmVxdWlyZWRfbmVzdGVkX21lc3NhZ2UYEiACKAsyRy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlElUKGHJlcXVpcmVkX2ZvcmVpZ25fbWVzc2FnZRgTIAIoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yEmIKFHJlcXVpcmVkX25lc3RlZF9lbnVtGBUgAigOMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkRW51bRJPChVyZXF1aXJlZF9mb3JlaWduX2VudW0YFiACKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMhIhChVyZXF1aXJlZF9zdHJpbmdfcGllY2UYGCACKAlCAggCEhkKDXJlcXVpcmVkX2NvcmQYGSACKAlCAggBElQKEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISXQoab3B0aW9uYWxfcmVjdXJzaXZlX21lc3NhZ2UYHCABKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhJNCgRkYXRhGMkBIAIoCjI+LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLkRhdGESIgoNZGVmYXVsdF9pbnQzMhjxASACKAU6Ci0xMjM0NTY3ODkSLAoNZGVmYXVsdF9pbnQ2NBjyASACKAM6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5EiMKDmRlZmF1bHRfdWludDMyGPMBIAIoDToKMjEyMzQ1Njc4ORItCg5kZWZhdWx0X3VpbnQ2NBj0ASACKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5EiMKDmRlZmF1bHRfc2ludDMyGPUBIAIoEToKLTEyMzQ1Njc4ORItCg5kZWZhdWx0X3NpbnQ2NBj2ASACKBI6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5EiQKD2RlZmF1bHRfZml4ZWQzMhj3ASACKAc6CjIxMjM0NTY3ODkSLgoPZGVmYXVsdF9maXhlZDY0GPgBIAIoBjoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSJQoQZGVmYXVsdF9zZml4ZWQzMhj5ASACKA86Ci0xMjM0NTY3ODkSLwoQZGVmYXVsdF9zZml4ZWQ2NBj6ASACKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Eh0KDWRlZmF1bHRfZmxvYXQY+wEgAigCOgU5ZSswORIeCg5kZWZhdWx0X2RvdWJsZRj8ASACKAE6BTdlKzIyEhsKDGRlZmF1bHRfYm9vbBj9ASACKAg6BHRydWUSIAoOZGVmYXVsdF9zdHJpbmcY/gEgAigJOgdSb3NlYnVkEh4KDWRlZmF1bHRfYnl0ZXMY/wEgAigMOgZqb3NodWEawwEKDU5lc3RlZE1lc3NhZ2USCQoBYRgBIAIoBRJOCgtjb3JlY3Vyc2l2ZRgCIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yElcKFG9wdGlvbmFsX2NvcmVjdXJzaXZlGAMgASgLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIaMwoERGF0YRIUCgtncm91cF9pbnQzMhjKASACKAUSFQoMZ3JvdXBfdWludDMyGMsBIAIoDRohChFNZXNzYWdlU2V0Q29ycmVjdCoICAQQ/////wc6AggBGoUCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjESCwoDc3RyGBkgAigJMtgBChVtZXNzYWdlX3NldF9leHRlbnNpb24SSy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMlUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGoQCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISCQoBaRgJIAIoBTLZAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyVS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFKBgjoBxCQTipGChFGb3JlaWduRW51bVByb3RvMhIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjpaCg9leHRlbnNpb25faW50MzISMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeCABKAVSDmV4dGVuc2lvbkludDMyOnwKCmdyb3VwZmllbGQSMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeSABKAoyKS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Hcm91cEZpZWxkUgpncm91cGZpZWxkQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzJIAfgBAaICBlByb3RvMg"); // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2. Use `create(TestAllTypesProto2Desc)` to create a new TestAllTypesProto2. export const TestAllTypesProto2Desc = /*@__PURE__*/ @@ -35,29 +35,33 @@ export const TestAllTypesProto2_NestedMessageDesc = /*@__PURE__*/ export const TestAllTypesProto2_DataDesc = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 1); +// Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField. Use `create(TestAllTypesProto2_MultiWordGroupFieldDesc)` to create a new TestAllTypesProto2_MultiWordGroupField. +export const TestAllTypesProto2_MultiWordGroupFieldDesc = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 2); + // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect. Use `create(TestAllTypesProto2_MessageSetCorrectDesc)` to create a new TestAllTypesProto2_MessageSetCorrect. export const TestAllTypesProto2_MessageSetCorrectDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3); // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1. Use `create(TestAllTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension1. export const TestAllTypesProto2_MessageSetCorrectExtension1Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; */ export const TestAllTypesProto2_MessageSetCorrectExtension1_message_set_extension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4, 0); // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2. Use `create(TestAllTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension2. export const TestAllTypesProto2_MessageSetCorrectExtension2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 5); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; */ export const TestAllTypesProto2_MessageSetCorrectExtension2_message_set_extension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 5, 0); // Describes the enum protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum. export const TestAllTypesProto2_NestedEnumDesc = /*@__PURE__*/ @@ -73,25 +77,29 @@ export const TestAllTypesProto2_NestedEnum = /*@__PURE__*/ export const ForeignMessageProto2Desc = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_test_messages_proto2, 1); +// Describes the message protobuf_test_messages.proto2.GroupField. Use `create(GroupFieldDesc)` to create a new GroupField. +export const GroupFieldDesc = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2); + // Describes the message protobuf_test_messages.proto2.UnknownToTestAllTypes. Use `create(UnknownToTestAllTypesDesc)` to create a new UnknownToTestAllTypes. export const UnknownToTestAllTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3); // Describes the message protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup. Use `create(UnknownToTestAllTypes_OptionalGroupDesc)` to create a new UnknownToTestAllTypes_OptionalGroup. export const UnknownToTestAllTypes_OptionalGroupDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2, 0); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3, 0); // Describes the message protobuf_test_messages.proto2.NullHypothesisProto2. Use `create(NullHypothesisProto2Desc)` to create a new NullHypothesisProto2. export const NullHypothesisProto2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 4); // Describes the message protobuf_test_messages.proto2.EnumOnlyProto2. Use `create(EnumOnlyProto2Desc)` to create a new EnumOnlyProto2. export const EnumOnlyProto2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 5); // Describes the enum protobuf_test_messages.proto2.EnumOnlyProto2.Bool. export const EnumOnlyProto2_BoolDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_test_messages_proto2, 4, 0); + enumDesc(fileDesc_google_protobuf_test_messages_proto2, 5, 0); /** * @generated from enum protobuf_test_messages.proto2.EnumOnlyProto2.Bool @@ -101,51 +109,51 @@ export const EnumOnlyProto2_Bool = /*@__PURE__*/ // Describes the message protobuf_test_messages.proto2.OneStringProto2. Use `create(OneStringProto2Desc)` to create a new OneStringProto2. export const OneStringProto2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 5); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 6); // Describes the message protobuf_test_messages.proto2.ProtoWithKeywords. Use `create(ProtoWithKeywordsDesc)` to create a new ProtoWithKeywords. export const ProtoWithKeywordsDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 6); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7); // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2. Use `create(TestAllRequiredTypesProto2Desc)` to create a new TestAllRequiredTypesProto2. export const TestAllRequiredTypesProto2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8); // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage. Use `create(TestAllRequiredTypesProto2_NestedMessageDesc)` to create a new TestAllRequiredTypesProto2_NestedMessage. export const TestAllRequiredTypesProto2_NestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 0); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 0); // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.Data. Use `create(TestAllRequiredTypesProto2_DataDesc)` to create a new TestAllRequiredTypesProto2_Data. export const TestAllRequiredTypesProto2_DataDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 1); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 1); // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect. Use `create(TestAllRequiredTypesProto2_MessageSetCorrectDesc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrect. export const TestAllRequiredTypesProto2_MessageSetCorrectDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 2); // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1. Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension1. export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 3); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; */ export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1_message_set_extension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 3, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 3, 0); // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2. Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension2. export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 4); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; */ export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2_message_set_extension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 4, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 4, 0); // Describes the enum protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedEnum. export const TestAllRequiredTypesProto2_NestedEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 0); + enumDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 0); /** * @generated from enum protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedEnum @@ -169,3 +177,9 @@ export const ForeignEnumProto2 = /*@__PURE__*/ export const extension_int32 = /*@__PURE__*/ extDesc(fileDesc_google_protobuf_test_messages_proto2, 0); +/** + * @generated from extension: optional protobuf_test_messages.proto2.GroupField groupfield = 121; + */ +export const groupfield = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2, 1); + diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.d.ts index 29e7b35f7..3c5bb40ce 100644 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.d.ts +++ b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.d.ts @@ -55,54 +55,54 @@ export declare const TestMessage_test_message: GenDescExtension & { /** - * @generated from field: optional int32 int_file_feature = 1; + * @generated from field: optional pb.EnumFeature file_feature = 1; */ - intFileFeature: number; + fileFeature: EnumFeature; /** - * @generated from field: optional int32 int_extension_range_feature = 2; + * @generated from field: optional pb.EnumFeature extension_range_feature = 2; */ - intExtensionRangeFeature: number; + extensionRangeFeature: EnumFeature; /** - * @generated from field: optional int32 int_message_feature = 3; + * @generated from field: optional pb.EnumFeature message_feature = 3; */ - intMessageFeature: number; + messageFeature: EnumFeature; /** - * @generated from field: optional int32 int_field_feature = 4; + * @generated from field: optional pb.EnumFeature field_feature = 4; */ - intFieldFeature: number; + fieldFeature: EnumFeature; /** - * @generated from field: optional int32 int_oneof_feature = 5; + * @generated from field: optional pb.EnumFeature oneof_feature = 5; */ - intOneofFeature: number; + oneofFeature: EnumFeature; /** - * @generated from field: optional int32 int_enum_feature = 6; + * @generated from field: optional pb.EnumFeature enum_feature = 6; */ - intEnumFeature: number; + enumFeature: EnumFeature; /** - * @generated from field: optional int32 int_enum_entry_feature = 7; + * @generated from field: optional pb.EnumFeature enum_entry_feature = 7; */ - intEnumEntryFeature: number; + enumEntryFeature: EnumFeature; /** - * @generated from field: optional int32 int_service_feature = 8; + * @generated from field: optional pb.EnumFeature service_feature = 8; */ - intServiceFeature: number; + serviceFeature: EnumFeature; /** - * @generated from field: optional int32 int_method_feature = 9; + * @generated from field: optional pb.EnumFeature method_feature = 9; */ - intMethodFeature: number; + methodFeature: EnumFeature; /** - * @generated from field: optional int32 int_multiple_feature = 10; + * @generated from field: optional pb.EnumFeature multiple_feature = 10; */ - intMultipleFeature: number; + multipleFeature: EnumFeature; /** * @generated from field: optional bool bool_field_feature = 11; @@ -110,99 +110,121 @@ export declare type TestFeatures = Message<"pb.TestFeatures"> & { boolFieldFeature: boolean; /** - * @generated from field: optional float float_field_feature = 12; + * @generated from field: optional pb.EnumFeature source_feature = 15; */ - floatFieldFeature: number; + sourceFeature: EnumFeature; /** - * @generated from field: optional pb.TestFeatures.MessageFeature message_field_feature = 13; + * @generated from field: optional pb.EnumFeature source_feature2 = 16; */ - messageFieldFeature?: TestFeatures_MessageFeature; + sourceFeature2: EnumFeature; /** - * @generated from field: optional pb.TestFeatures.EnumFeature enum_field_feature = 14; + * @generated from field: optional pb.EnumFeature removed_feature = 17; */ - enumFieldFeature: TestFeatures_EnumFeature; + removedFeature: EnumFeature; /** - * @generated from field: optional int32 int_source_feature = 15; + * @generated from field: optional pb.EnumFeature future_feature = 18; */ - intSourceFeature: number; + futureFeature: EnumFeature; /** - * @generated from field: optional string string_source_feature = 16; + * @generated from field: optional pb.EnumFeature legacy_feature = 19; */ - stringSourceFeature: string; + legacyFeature: EnumFeature; }; // Describes the message pb.TestFeatures. Use `create(TestFeaturesDesc)` to create a new TestFeatures. export declare const TestFeaturesDesc: GenDescMessage; /** - * @generated from message pb.TestFeatures.MessageFeature + * @generated from enum pb.EnumFeature */ -export declare type TestFeatures_MessageFeature = Message<"pb.TestFeatures.MessageFeature"> & { +export enum EnumFeature { /** - * @generated from field: optional bool bool_field = 1; + * @generated from enum value: TEST_ENUM_FEATURE_UNKNOWN = 0; */ - boolField: boolean; + TEST_ENUM_FEATURE_UNKNOWN = 0, /** - * @generated from field: optional int32 int_field = 2; + * @generated from enum value: VALUE1 = 1; */ - intField: number; + VALUE1 = 1, /** - * @generated from field: optional float float_field = 3; + * @generated from enum value: VALUE2 = 2; */ - floatField: number; + VALUE2 = 2, /** - * @generated from field: optional string string_field = 4; + * @generated from enum value: VALUE3 = 3; */ - stringField: string; -}; + VALUE3 = 3, -// Describes the message pb.TestFeatures.MessageFeature. Use `create(TestFeatures_MessageFeatureDesc)` to create a new TestFeatures_MessageFeature. -export declare const TestFeatures_MessageFeatureDesc: GenDescMessage; + /** + * @generated from enum value: VALUE4 = 4; + */ + VALUE4 = 4, -/** - * @generated from enum pb.TestFeatures.EnumFeature - */ -export enum TestFeatures_EnumFeature { /** - * @generated from enum value: TEST_ENUM_FEATURE_UNKNOWN = 0; + * @generated from enum value: VALUE5 = 5; */ - TEST_ENUM_FEATURE_UNKNOWN = 0, + VALUE5 = 5, + + /** + * @generated from enum value: VALUE6 = 6; + */ + VALUE6 = 6, + + /** + * @generated from enum value: VALUE7 = 7; + */ + VALUE7 = 7, + + /** + * @generated from enum value: VALUE8 = 8; + */ + VALUE8 = 8, + + /** + * @generated from enum value: VALUE9 = 9; + */ + VALUE9 = 9, + + /** + * @generated from enum value: VALUE10 = 10; + */ + VALUE10 = 10, /** - * @generated from enum value: ENUM_VALUE1 = 1; + * @generated from enum value: VALUE11 = 11; */ - ENUM_VALUE1 = 1, + VALUE11 = 11, /** - * @generated from enum value: ENUM_VALUE2 = 2; + * @generated from enum value: VALUE12 = 12; */ - ENUM_VALUE2 = 2, + VALUE12 = 12, /** - * @generated from enum value: ENUM_VALUE3 = 3; + * @generated from enum value: VALUE13 = 13; */ - ENUM_VALUE3 = 3, + VALUE13 = 13, /** - * @generated from enum value: ENUM_VALUE4 = 4; + * @generated from enum value: VALUE14 = 14; */ - ENUM_VALUE4 = 4, + VALUE14 = 14, /** - * @generated from enum value: ENUM_VALUE5 = 5; + * @generated from enum value: VALUE15 = 15; */ - ENUM_VALUE5 = 5, + VALUE15 = 15, } -// Describes the enum pb.TestFeatures.EnumFeature. -export declare const TestFeatures_EnumFeatureDesc: GenDescEnum; +// Describes the enum pb.EnumFeature. +export declare const EnumFeatureDesc: GenDescEnum; /** * @generated from extension: optional pb.TestFeatures test = 9999; diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.js index 86420d326..97feb6f2c 100644 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.js +++ b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_features_pb.js @@ -20,7 +20,7 @@ import { enumDesc, extDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/prot import { fileDesc_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt"; export const fileDesc_google_protobuf_unittest_features = /*@__PURE__*/ - fileDesc("Cidnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZmVhdHVyZXMucHJvdG8SAnBiIrsBCgtUZXN0TWVzc2FnZRpZCgZOZXN0ZWQyTwoLdGVzdF9uZXN0ZWQSGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBiNTiABKAsyEC5wYi5UZXN0RmVhdHVyZXNSCnRlc3ROZXN0ZWQyUQoMdGVzdF9tZXNzYWdlEhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQYjk4gASgLMhAucGIuVGVzdEZlYXR1cmVzUgt0ZXN0TWVzc2FnZSL9CgoMVGVzdEZlYXR1cmVzElEKEGludF9maWxlX2ZlYXR1cmUYASABKAVCN4gBAZgBAaIBBxICLTIY5geiAQcSAi0zGOcHogEGEgExGOgHogEHEgEyGJ2NBqIBBxIBMxiejQYSNAobaW50X2V4dGVuc2lvbl9yYW5nZV9mZWF0dXJlGAIgASgFQg+IAQGYAQKiAQYSATEY5gcSLAoTaW50X21lc3NhZ2VfZmVhdHVyZRgDIAEoBUIPiAEBmAEDogEGEgExGOYHEioKEWludF9maWVsZF9mZWF0dXJlGAQgASgFQg+IAQGYAQSiAQYSATEY5gcSKgoRaW50X29uZW9mX2ZlYXR1cmUYBSABKAVCD4gBAZgBBaIBBhIBMRjmBxIpChBpbnRfZW51bV9mZWF0dXJlGAYgASgFQg+IAQGYAQaiAQYSATEY5gcSLwoWaW50X2VudW1fZW50cnlfZmVhdHVyZRgHIAEoBUIPiAEBmAEHogEGEgExGOYHEiwKE2ludF9zZXJ2aWNlX2ZlYXR1cmUYCCABKAVCD4gBAZgBCKIBBhIBMRjmBxIrChJpbnRfbWV0aG9kX2ZlYXR1cmUYCSABKAVCD4gBAZgBCaIBBhIBMRjmBxJFChRpbnRfbXVsdGlwbGVfZmVhdHVyZRgKIAEoBUIniAEBmAEBmAEEmAEDmAEGmAEHmAEImAEJmAEFmAECogEGEgExGOYHEjwKEmJvb2xfZmllbGRfZmVhdHVyZRgLIAEoCEIgiAEBmAEEogEKEgVmYWxzZRjmB6IBChIEdHJ1ZRidjQYSOgoTZmxvYXRfZmllbGRfZmVhdHVyZRgMIAEoAkIdiAEBmAEEogEIEgMxLjEY5geiAQkSAzEuMhidjQYSzAEKFW1lc3NhZ2VfZmllbGRfZmVhdHVyZRgNIAEoCzIfLnBiLlRlc3RGZWF0dXJlcy5NZXNzYWdlRmVhdHVyZUKLAYgBAZgBBKIBEhIMaW50X2ZpZWxkOiAyGJ2NBqIBGhIUc3RyaW5nX2ZpZWxkOiAnMjAyNCcYno0GogFIEkNib29sX2ZpZWxkOiB0cnVlIGludF9maWVsZDogMSBmbG9hdF9maWVsZDogMS41IHN0cmluZ19maWVsZDogJzIwMjMnGOgHogEFEgAY5gcSnAEKEmVudW1fZmllbGRfZmVhdHVyZRgOIAEoDjIcLnBiLlRlc3RGZWF0dXJlcy5FbnVtRmVhdHVyZUJiiAEBmAEEogEeEhlURVNUX0VOVU1fRkVBVFVSRV9VTktOT1dOGOYHogEQEgtFTlVNX1ZBTFVFMRjoB6IBERILRU5VTV9WQUxVRTIYnY0GogEREgtFTlVNX1ZBTFVFMxiejQYSQwoSaW50X3NvdXJjZV9mZWF0dXJlGA8gASgFQieIAQKYAQGYAQSYAQOYAQaYAQeYAQiYAQmYAQWYAQKiAQYSATEY5gcSSwoVc3RyaW5nX3NvdXJjZV9mZWF0dXJlGBAgASgJQiyIAQKYAQGYAQSYAQOYAQaYAQeYAQiYAQmYAQWYAQKiAQsSBicyMDIzJxjmBxpiCg5NZXNzYWdlRmVhdHVyZRISCgpib29sX2ZpZWxkGAEgASgIEhEKCWludF9maWVsZBgCIAEoBRITCgtmbG9hdF9maWVsZBgDIAEoAhIUCgxzdHJpbmdfZmllbGQYBCABKAkigQEKC0VudW1GZWF0dXJlEh0KGVRFU1RfRU5VTV9GRUFUVVJFX1VOS05PV04QABIPCgtFTlVNX1ZBTFVFMRABEg8KC0VOVU1fVkFMVUUyEAISDwoLRU5VTV9WQUxVRTMQAxIPCgtFTlVNX1ZBTFVFNBAEEg8KC0VOVU1fVkFMVUU1EAU6QgoEdGVzdBIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0GI9OIAEoCzIQLnBiLlRlc3RGZWF0dXJlc1IEdGVzdA", [fileDesc_google_protobuf_descriptor]); + fileDesc("Cidnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZmVhdHVyZXMucHJvdG8SAnBiIrsBCgtUZXN0TWVzc2FnZRpZCgZOZXN0ZWQyTwoLdGVzdF9uZXN0ZWQSGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBiNTiABKAsyEC5wYi5UZXN0RmVhdHVyZXNSCnRlc3ROZXN0ZWQyUQoMdGVzdF9tZXNzYWdlEhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQYjk4gASgLMhAucGIuVGVzdEZlYXR1cmVzUgt0ZXN0TWVzc2FnZSLbCgoMVGVzdEZlYXR1cmVzEnsKDGZpbGVfZmVhdHVyZRgBIAEoDjIPLnBiLkVudW1GZWF0dXJlQlSIAQGYAQGiAQsSBlZBTFVFMRiEB6IBCxIGVkFMVUUyGOcHogELEgZWQUxVRTMY6AeiAQwSBlZBTFVFNBidjQaiAQwSBlZBTFVFNRiejQayAQMI6AcSTAoXZXh0ZW5zaW9uX3JhbmdlX2ZlYXR1cmUYAiABKA4yDy5wYi5FbnVtRmVhdHVyZUIaiAEBmAECogELEgZWQUxVRTEYhAeyAQMI6AcSRAoPbWVzc2FnZV9mZWF0dXJlGAMgASgOMg8ucGIuRW51bUZlYXR1cmVCGogBAZgBA6IBCxIGVkFMVUUxGIQHsgEDCOgHEkIKDWZpZWxkX2ZlYXR1cmUYBCABKA4yDy5wYi5FbnVtRmVhdHVyZUIaiAEBmAEEogELEgZWQUxVRTEYhAeyAQMI6AcSQgoNb25lb2ZfZmVhdHVyZRgFIAEoDjIPLnBiLkVudW1GZWF0dXJlQhqIAQGYAQWiAQsSBlZBTFVFMRiEB7IBAwjoBxJBCgxlbnVtX2ZlYXR1cmUYBiABKA4yDy5wYi5FbnVtRmVhdHVyZUIaiAEBmAEGogELEgZWQUxVRTEYhAeyAQMI6AcSRwoSZW51bV9lbnRyeV9mZWF0dXJlGAcgASgOMg8ucGIuRW51bUZlYXR1cmVCGogBAZgBB6IBCxIGVkFMVUUxGIQHsgEDCOgHEkQKD3NlcnZpY2VfZmVhdHVyZRgIIAEoDjIPLnBiLkVudW1GZWF0dXJlQhqIAQGYAQiiAQsSBlZBTFVFMRiEB7IBAwjoBxJDCg5tZXRob2RfZmVhdHVyZRgJIAEoDjIPLnBiLkVudW1GZWF0dXJlQhqIAQGYAQmiAQsSBlZBTFVFMRiEB7IBAwjoBxJdChBtdWx0aXBsZV9mZWF0dXJlGAogASgOMg8ucGIuRW51bUZlYXR1cmVCMogBAZgBAZgBBJgBA5gBBpgBB5gBCJgBCZgBBZgBAqIBCxIGVkFMVUUxGIQHsgEDCOgHEkIKEmJvb2xfZmllbGRfZmVhdHVyZRgLIAEoCEImiAEBmAEEogEKEgVmYWxzZRiEB6IBChIEdHJ1ZRidjQayAQMI6AcSWwoOc291cmNlX2ZlYXR1cmUYDyABKA4yDy5wYi5FbnVtRmVhdHVyZUIyiAECmAEBmAEEmAEDmAEGmAEHmAEImAEJmAEFmAECogELEgZWQUxVRTEYhAeyAQMI6AcSXAoPc291cmNlX2ZlYXR1cmUyGBAgASgOMg8ucGIuRW51bUZlYXR1cmVCMogBApgBAZgBBJgBA5gBBpgBB5gBCJgBCZgBBZgBAqIBCxIGVkFMVUUxGIQHsgEDCOgHEo0BCg9yZW1vdmVkX2ZlYXR1cmUYESABKA4yDy5wYi5FbnVtRmVhdHVyZUJjiAEBmAEBmAEEogELEgZWQUxVRTEYhAeiAQsSBlZBTFVFMhjoB6IBCxIGVkFMVUUzGOkHsgEtCOgHEOgHGiJDdXN0b20gZmVhdHVyZSBkZXByZWNhdGlvbiB3YXJuaW5nIOkHElQKDmZ1dHVyZV9mZWF0dXJlGBIgASgOMg8ucGIuRW51bUZlYXR1cmVCK4gBAZgBAZgBBKIBCxIGVkFMVUUxGIQHogELEgZWQUxVRTIY6QeyAQMI6QcSVwoObGVnYWN5X2ZlYXR1cmUYEyABKA4yDy5wYi5FbnVtRmVhdHVyZUIuiAEBmAEBmAEEogELEgZWQUxVRTEYhAeiAQsSBlZBTFVFMhjoB7IBBgjmByDoByrmAQoLRW51bUZlYXR1cmUSHQoZVEVTVF9FTlVNX0ZFQVRVUkVfVU5LTk9XThAAEgoKBlZBTFVFMRABEgoKBlZBTFVFMhACEgoKBlZBTFVFMxADEgoKBlZBTFVFNBAEEgoKBlZBTFVFNRAFEgoKBlZBTFVFNhAGEgoKBlZBTFVFNxAHEgoKBlZBTFVFOBAIEgoKBlZBTFVFORAJEgsKB1ZBTFVFMTAQChILCgdWQUxVRTExEAsSCwoHVkFMVUUxMhAMEgsKB1ZBTFVFMTMQDRILCgdWQUxVRTE0EA4SCwoHVkFMVUUxNRAPOkIKBHRlc3QSGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBiPTiABKAsyEC5wYi5UZXN0RmVhdHVyZXNSBHRlc3Q", [fileDesc_google_protobuf_descriptor]); // Describes the message pb.TestMessage. Use `create(TestMessageDesc)` to create a new TestMessage. export const TestMessageDesc = /*@__PURE__*/ @@ -46,19 +46,15 @@ export const TestMessage_test_message = /*@__PURE__*/ export const TestFeaturesDesc = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_unittest_features, 1); -// Describes the message pb.TestFeatures.MessageFeature. Use `create(TestFeatures_MessageFeatureDesc)` to create a new TestFeatures_MessageFeature. -export const TestFeatures_MessageFeatureDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_features, 1, 0); - -// Describes the enum pb.TestFeatures.EnumFeature. -export const TestFeatures_EnumFeatureDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_features, 1, 0); +// Describes the enum pb.EnumFeature. +export const EnumFeatureDesc = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_unittest_features, 0); /** - * @generated from enum pb.TestFeatures.EnumFeature + * @generated from enum pb.EnumFeature */ -export const TestFeatures_EnumFeature = /*@__PURE__*/ - tsEnum(TestFeatures_EnumFeatureDesc); +export const EnumFeature = /*@__PURE__*/ + tsEnum(EnumFeatureDesc); /** * @generated from extension: optional pb.TestFeatures test = 9999; diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_lite_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_lite_pb.d.ts deleted file mode 100644 index 385234bdc..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_lite_pb.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// -// This is like unittest_import.proto but with optimize_for = LITE_RUNTIME. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_import_lite.proto (package protobuf_unittest_import, syntax proto2) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; - -export declare const fileDesc_google_protobuf_unittest_import_lite: GenDescFile; - -/** - * @generated from message protobuf_unittest_import.ImportMessageLite - */ -export declare type ImportMessageLite = Message<"protobuf_unittest_import.ImportMessageLite"> & { - /** - * @generated from field: optional int32 d = 1; - */ - d: number; -}; - -// Describes the message protobuf_unittest_import.ImportMessageLite. Use `create(ImportMessageLiteDesc)` to create a new ImportMessageLite. -export declare const ImportMessageLiteDesc: GenDescMessage; - -/** - * @generated from enum protobuf_unittest_import.ImportEnumLite - */ -export enum ImportEnumLite { - /** - * @generated from enum value: IMPORT_LITE_FOO = 7; - */ - IMPORT_LITE_FOO = 7, - - /** - * @generated from enum value: IMPORT_LITE_BAR = 8; - */ - IMPORT_LITE_BAR = 8, - - /** - * @generated from enum value: IMPORT_LITE_BAZ = 9; - */ - IMPORT_LITE_BAZ = 9, -} - -// Describes the enum protobuf_unittest_import.ImportEnumLite. -export declare const ImportEnumLiteDesc: GenDescEnum; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_lite_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_lite_pb.js deleted file mode 100644 index b0f3ff0e7..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_lite_pb.js +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// -// This is like unittest_import.proto but with optimize_for = LITE_RUNTIME. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_import_lite.proto (package protobuf_unittest_import, syntax proto2) -/* eslint-disable */ - -import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest_import_public_lite } from "./unittest_import_public_lite_pb.js"; - -export const fileDesc_google_protobuf_unittest_import_lite = /*@__PURE__*/ - fileDesc("Cipnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X2xpdGUucHJvdG8SGHByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydCIeChFJbXBvcnRNZXNzYWdlTGl0ZRIJCgFkGAEgASgFKk8KDkltcG9ydEVudW1MaXRlEhMKD0lNUE9SVF9MSVRFX0ZPTxAHEhMKD0lNUE9SVF9MSVRFX0JBUhAIEhMKD0lNUE9SVF9MSVRFX0JBWhAJQhcKE2NvbS5nb29nbGUucHJvdG9idWZIA1AA", [fileDesc_google_protobuf_unittest_import_public_lite]); - -// Describes the message protobuf_unittest_import.ImportMessageLite. Use `create(ImportMessageLiteDesc)` to create a new ImportMessageLite. -export const ImportMessageLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_import_lite, 0); - -// Describes the enum protobuf_unittest_import.ImportEnumLite. -export const ImportEnumLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_import_lite, 0); - -/** - * @generated from enum protobuf_unittest_import.ImportEnumLite - */ -export const ImportEnumLite = /*@__PURE__*/ - tsEnum(ImportEnumLiteDesc); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_public_lite_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_public_lite_pb.d.ts deleted file mode 100644 index 1d6c77926..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_public_lite_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: liujisi@google.com (Pherl Liu) - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_import_public_lite.proto (package protobuf_unittest_import, syntax proto2) -/* eslint-disable */ - -import type { GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; - -export declare const fileDesc_google_protobuf_unittest_import_public_lite: GenDescFile; - -/** - * @generated from message protobuf_unittest_import.PublicImportMessageLite - */ -export declare type PublicImportMessageLite = Message<"protobuf_unittest_import.PublicImportMessageLite"> & { - /** - * @generated from field: optional int32 e = 1; - */ - e: number; -}; - -// Describes the message protobuf_unittest_import.PublicImportMessageLite. Use `create(PublicImportMessageLiteDesc)` to create a new PublicImportMessageLite. -export declare const PublicImportMessageLiteDesc: GenDescMessage; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_public_lite_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_public_lite_pb.js deleted file mode 100644 index 6bb328994..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_import_public_lite_pb.js +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: liujisi@google.com (Pherl Liu) - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_import_public_lite.proto (package protobuf_unittest_import, syntax proto2) -/* eslint-disable */ - -import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; - -export const fileDesc_google_protobuf_unittest_import_public_lite = /*@__PURE__*/ - fileDesc("CjFnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X3B1YmxpY19saXRlLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiJAoXUHVibGljSW1wb3J0TWVzc2FnZUxpdGUSCQoBZRgBIAEoBUIXChNjb20uZ29vZ2xlLnByb3RvYnVmSAM"); - -// Describes the message protobuf_unittest_import.PublicImportMessageLite. Use `create(PublicImportMessageLiteDesc)` to create a new PublicImportMessageLite. -export const PublicImportMessageLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_import_public_lite, 0); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_lite_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_lite_pb.d.ts deleted file mode 100644 index 84bc34303..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_lite_pb.d.ts +++ /dev/null @@ -1,1761 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// -// This is like unittest.proto but with optimize_for = LITE_RUNTIME. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_lite.proto (package protobuf_unittest, syntax proto2) -/* eslint-disable */ - -import type { GenDescEnum, GenDescExtension, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; -import type { ImportEnumLite, ImportMessageLite } from "./unittest_import_lite_pb.js"; -import type { PublicImportMessageLite } from "./unittest_import_public_lite_pb.js"; - -export declare const fileDesc_google_protobuf_unittest_lite: GenDescFile; - -/** - * Same as TestAllTypes but with the lite runtime. - * - * @generated from message protobuf_unittest.TestAllTypesLite - */ -export declare type TestAllTypesLite = Message<"protobuf_unittest.TestAllTypesLite"> & { - /** - * Singular - * - * @generated from field: optional int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: optional int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: optional uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: optional uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: optional sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: optional sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: optional fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: optional fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: optional sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: optional sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: optional float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: optional double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: optional bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: optional string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: optional bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.OptionalGroup optionalgroup = 16; - */ - optionalgroup?: TestAllTypesLite_OptionalGroup; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypesLite_NestedMessage; - - /** - * @generated from field: optional protobuf_unittest.ForeignMessageLite optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessageLite; - - /** - * @generated from field: optional protobuf_unittest_import.ImportMessageLite optional_import_message = 20; - */ - optionalImportMessage?: ImportMessageLite; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypesLite_NestedEnum; - - /** - * @generated from field: optional protobuf_unittest.ForeignEnumLite optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnumLite; - - /** - * @generated from field: optional protobuf_unittest_import.ImportEnumLite optional_import_enum = 23; - */ - optionalImportEnum: ImportEnumLite; - - /** - * @generated from field: optional string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: optional string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: optional protobuf_unittest_import.PublicImportMessageLite optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessageLite; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypesLite_NestedMessage; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_unverified_lazy_message = 28; - */ - optionalUnverifiedLazyMessage?: TestAllTypesLite_NestedMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.RepeatedGroup repeatedgroup = 46; - */ - repeatedgroup: TestAllTypesLite_RepeatedGroup[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypesLite_NestedMessage[]; - - /** - * @generated from field: repeated protobuf_unittest.ForeignMessageLite repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessageLite[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessageLite repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessageLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypesLite_NestedEnum[]; - - /** - * @generated from field: repeated protobuf_unittest.ForeignEnumLite repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnumLite[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportEnumLite repeated_import_enum = 53; - */ - repeatedImportEnum: ImportEnumLite[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypesLite_NestedMessage[]; - - /** - * Singular with defaults - * - * @generated from field: optional int32 default_int32 = 61 [default = 41]; - */ - defaultInt32: number; - - /** - * @generated from field: optional int64 default_int64 = 62 [default = 42]; - */ - defaultInt64: bigint; - - /** - * @generated from field: optional uint32 default_uint32 = 63 [default = 43]; - */ - defaultUint32: number; - - /** - * @generated from field: optional uint64 default_uint64 = 64 [default = 44]; - */ - defaultUint64: bigint; - - /** - * @generated from field: optional sint32 default_sint32 = 65 [default = -45]; - */ - defaultSint32: number; - - /** - * @generated from field: optional sint64 default_sint64 = 66 [default = 46]; - */ - defaultSint64: bigint; - - /** - * @generated from field: optional fixed32 default_fixed32 = 67 [default = 47]; - */ - defaultFixed32: number; - - /** - * @generated from field: optional fixed64 default_fixed64 = 68 [default = 48]; - */ - defaultFixed64: bigint; - - /** - * @generated from field: optional sfixed32 default_sfixed32 = 69 [default = 49]; - */ - defaultSfixed32: number; - - /** - * @generated from field: optional sfixed64 default_sfixed64 = 70 [default = -50]; - */ - defaultSfixed64: bigint; - - /** - * @generated from field: optional float default_float = 71 [default = 51.5]; - */ - defaultFloat: number; - - /** - * @generated from field: optional double default_double = 72 [default = 52000]; - */ - defaultDouble: number; - - /** - * @generated from field: optional bool default_bool = 73 [default = true]; - */ - defaultBool: boolean; - - /** - * @generated from field: optional string default_string = 74 [default = "hello"]; - */ - defaultString: string; - - /** - * @generated from field: optional bytes default_bytes = 75 [default = "world"]; - */ - defaultBytes: Uint8Array; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedEnum default_nested_enum = 81 [default = BAR]; - */ - defaultNestedEnum: TestAllTypesLite_NestedEnum; - - /** - * @generated from field: optional protobuf_unittest.ForeignEnumLite default_foreign_enum = 82 [default = FOREIGN_LITE_BAR]; - */ - defaultForeignEnum: ForeignEnumLite; - - /** - * @generated from field: optional protobuf_unittest_import.ImportEnumLite default_import_enum = 83 [default = IMPORT_LITE_BAR]; - */ - defaultImportEnum: ImportEnumLite; - - /** - * @generated from field: optional string default_string_piece = 84 [default = "abc"]; - */ - defaultStringPiece: string; - - /** - * @generated from field: optional string default_cord = 85 [default = "123"]; - */ - defaultCord: string; - - /** - * For oneof test - * - * @generated from oneof protobuf_unittest.TestAllTypesLite.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypesLite_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite.NestedMessage oneof_lazy_nested_message = 115; - */ - value: TestAllTypesLite_NestedMessage; - case: "oneofLazyNestedMessage"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite.NestedMessage2 oneof_nested_message2 = 117; - */ - value: TestAllTypesLite_NestedMessage2; - case: "oneofNestedMessage2"; - } | { case: undefined; value?: undefined }; - - /** - * Tests toString for non-repeated fields with a list suffix - * - * @generated from field: optional int32 deceptively_named_list = 116; - */ - deceptivelyNamedList: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite. Use `create(TestAllTypesLiteDesc)` to create a new TestAllTypesLite. -export declare const TestAllTypesLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.NestedMessage - */ -export declare type TestAllTypesLite_NestedMessage = Message<"protobuf_unittest.TestAllTypesLite.NestedMessage"> & { - /** - * @generated from field: optional int32 bb = 1; - */ - bb: number; - - /** - * @generated from field: optional int64 cc = 2; - */ - cc: bigint; - - /** - * @generated from field: repeated int32 dd = 3 [packed = true]; - */ - dd: number[]; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.NestedMessage. Use `create(TestAllTypesLite_NestedMessageDesc)` to create a new TestAllTypesLite_NestedMessage. -export declare const TestAllTypesLite_NestedMessageDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.NestedMessage2 - */ -export declare type TestAllTypesLite_NestedMessage2 = Message<"protobuf_unittest.TestAllTypesLite.NestedMessage2"> & { - /** - * @generated from field: optional int32 dd = 1; - */ - dd: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.NestedMessage2. Use `create(TestAllTypesLite_NestedMessage2Desc)` to create a new TestAllTypesLite_NestedMessage2. -export declare const TestAllTypesLite_NestedMessage2Desc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.OptionalGroup - */ -export declare type TestAllTypesLite_OptionalGroup = Message<"protobuf_unittest.TestAllTypesLite.OptionalGroup"> & { - /** - * @generated from field: optional int32 a = 17; - */ - a: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.OptionalGroup. Use `create(TestAllTypesLite_OptionalGroupDesc)` to create a new TestAllTypesLite_OptionalGroup. -export declare const TestAllTypesLite_OptionalGroupDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.RepeatedGroup - */ -export declare type TestAllTypesLite_RepeatedGroup = Message<"protobuf_unittest.TestAllTypesLite.RepeatedGroup"> & { - /** - * @generated from field: optional int32 a = 47; - */ - a: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.RepeatedGroup. Use `create(TestAllTypesLite_RepeatedGroupDesc)` to create a new TestAllTypesLite_RepeatedGroup. -export declare const TestAllTypesLite_RepeatedGroupDesc: GenDescMessage; - -/** - * @generated from enum protobuf_unittest.TestAllTypesLite.NestedEnum - */ -export enum TestAllTypesLite_NestedEnum { - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, -} - -// Describes the enum protobuf_unittest.TestAllTypesLite.NestedEnum. -export declare const TestAllTypesLite_NestedEnumDesc: GenDescEnum; - -/** - * @generated from message protobuf_unittest.ForeignMessageLite - */ -export declare type ForeignMessageLite = Message<"protobuf_unittest.ForeignMessageLite"> & { - /** - * @generated from field: optional int32 c = 1; - */ - c: number; -}; - -// Describes the message protobuf_unittest.ForeignMessageLite. Use `create(ForeignMessageLiteDesc)` to create a new ForeignMessageLite. -export declare const ForeignMessageLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestPackedTypesLite - */ -export declare type TestPackedTypesLite = Message<"protobuf_unittest.TestPackedTypesLite"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated protobuf_unittest.ForeignEnumLite packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnumLite[]; -}; - -// Describes the message protobuf_unittest.TestPackedTypesLite. Use `create(TestPackedTypesLiteDesc)` to create a new TestPackedTypesLite. -export declare const TestPackedTypesLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestAllExtensionsLite - */ -export declare type TestAllExtensionsLite = Message<"protobuf_unittest.TestAllExtensionsLite"> & { -}; - -// Describes the message protobuf_unittest.TestAllExtensionsLite. Use `create(TestAllExtensionsLiteDesc)` to create a new TestAllExtensionsLite. -export declare const TestAllExtensionsLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.OptionalGroup_extension_lite - */ -export declare type OptionalGroup_extension_lite = Message<"protobuf_unittest.OptionalGroup_extension_lite"> & { - /** - * @generated from field: optional int32 a = 17; - */ - a: number; -}; - -// Describes the message protobuf_unittest.OptionalGroup_extension_lite. Use `create(OptionalGroup_extension_liteDesc)` to create a new OptionalGroup_extension_lite. -export declare const OptionalGroup_extension_liteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.RepeatedGroup_extension_lite - */ -export declare type RepeatedGroup_extension_lite = Message<"protobuf_unittest.RepeatedGroup_extension_lite"> & { - /** - * @generated from field: optional int32 a = 47; - */ - a: number; -}; - -// Describes the message protobuf_unittest.RepeatedGroup_extension_lite. Use `create(RepeatedGroup_extension_liteDesc)` to create a new RepeatedGroup_extension_lite. -export declare const RepeatedGroup_extension_liteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestPackedExtensionsLite - */ -export declare type TestPackedExtensionsLite = Message<"protobuf_unittest.TestPackedExtensionsLite"> & { -}; - -// Describes the message protobuf_unittest.TestPackedExtensionsLite. Use `create(TestPackedExtensionsLiteDesc)` to create a new TestPackedExtensionsLite. -export declare const TestPackedExtensionsLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestNestedExtensionLite - */ -export declare type TestNestedExtensionLite = Message<"protobuf_unittest.TestNestedExtensionLite"> & { -}; - -// Describes the message protobuf_unittest.TestNestedExtensionLite. Use `create(TestNestedExtensionLiteDesc)` to create a new TestNestedExtensionLite. -export declare const TestNestedExtensionLiteDesc: GenDescMessage; - -/** - * @generated from extension: optional int32 nested_extension = 12345; - */ -export declare const TestNestedExtensionLite_nested_extension: GenDescExtension; - -/** - * Test that deprecated fields work. We only verify that they compile (at one - * point this failed). - * - * @generated from message protobuf_unittest.TestDeprecatedLite - */ -export declare type TestDeprecatedLite = Message<"protobuf_unittest.TestDeprecatedLite"> & { - /** - * @generated from field: optional int32 deprecated_field = 1 [deprecated = true]; - * @deprecated - */ - deprecatedField: number; - - /** - * @generated from field: required int32 deprecated_field2 = 2 [deprecated = true]; - * @deprecated - */ - deprecatedField2: number; - - /** - * @generated from field: optional string deprecated_field3 = 3 [deprecated = true]; - * @deprecated - */ - deprecatedField3: string; - - /** - * @generated from field: optional protobuf_unittest.TestDeprecatedLite deprecated_field4 = 4 [deprecated = true]; - * @deprecated - */ - deprecatedField4?: TestDeprecatedLite; -}; - -// Describes the message protobuf_unittest.TestDeprecatedLite. Use `create(TestDeprecatedLiteDesc)` to create a new TestDeprecatedLite. -export declare const TestDeprecatedLiteDesc: GenDescMessage; - -/** - * See the comments of the same type in unittest.proto. - * - * @generated from message protobuf_unittest.TestParsingMergeLite - */ -export declare type TestParsingMergeLite = Message<"protobuf_unittest.TestParsingMergeLite"> & { - /** - * @generated from field: required protobuf_unittest.TestAllTypesLite required_all_types = 1; - */ - requiredAllTypes?: TestAllTypesLite; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite optional_all_types = 2; - */ - optionalAllTypes?: TestAllTypesLite; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite repeated_all_types = 3; - */ - repeatedAllTypes: TestAllTypesLite[]; - - /** - * @generated from field: optional protobuf_unittest.TestParsingMergeLite.OptionalGroup optionalgroup = 10; - */ - optionalgroup?: TestParsingMergeLite_OptionalGroup; - - /** - * @generated from field: repeated protobuf_unittest.TestParsingMergeLite.RepeatedGroup repeatedgroup = 20; - */ - repeatedgroup: TestParsingMergeLite_RepeatedGroup[]; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite. Use `create(TestParsingMergeLiteDesc)` to create a new TestParsingMergeLite. -export declare const TestParsingMergeLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator - */ -export declare type TestParsingMergeLite_RepeatedFieldsGenerator = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator"> & { - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite field1 = 1; - */ - field1: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite field2 = 2; - */ - field2: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite field3 = 3; - */ - field3: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 group1 = 10; - */ - group1: TestParsingMergeLite_RepeatedFieldsGenerator_Group1[]; - - /** - * @generated from field: repeated protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 group2 = 20; - */ - group2: TestParsingMergeLite_RepeatedFieldsGenerator_Group2[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite ext1 = 1000; - */ - ext1: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite ext2 = 1001; - */ - ext2: TestAllTypesLite[]; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator. Use `create(TestParsingMergeLite_RepeatedFieldsGeneratorDesc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator. -export declare const TestParsingMergeLite_RepeatedFieldsGeneratorDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 - */ -export declare type TestParsingMergeLite_RepeatedFieldsGenerator_Group1 = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite field1 = 11; - */ - field1?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1. Use `create(TestParsingMergeLite_RepeatedFieldsGenerator_Group1Desc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator_Group1. -export declare const TestParsingMergeLite_RepeatedFieldsGenerator_Group1Desc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 - */ -export declare type TestParsingMergeLite_RepeatedFieldsGenerator_Group2 = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite field1 = 21; - */ - field1?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2. Use `create(TestParsingMergeLite_RepeatedFieldsGenerator_Group2Desc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator_Group2. -export declare const TestParsingMergeLite_RepeatedFieldsGenerator_Group2Desc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.OptionalGroup - */ -export declare type TestParsingMergeLite_OptionalGroup = Message<"protobuf_unittest.TestParsingMergeLite.OptionalGroup"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite optional_group_all_types = 11; - */ - optionalGroupAllTypes?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.OptionalGroup. Use `create(TestParsingMergeLite_OptionalGroupDesc)` to create a new TestParsingMergeLite_OptionalGroup. -export declare const TestParsingMergeLite_OptionalGroupDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedGroup - */ -export declare type TestParsingMergeLite_RepeatedGroup = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedGroup"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite repeated_group_all_types = 21; - */ - repeatedGroupAllTypes?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedGroup. Use `create(TestParsingMergeLite_RepeatedGroupDesc)` to create a new TestParsingMergeLite_RepeatedGroup. -export declare const TestParsingMergeLite_RepeatedGroupDesc: GenDescMessage; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite optional_ext = 1000; - */ -export declare const TestParsingMergeLite_optional_ext: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite repeated_ext = 1001; - */ -export declare const TestParsingMergeLite_repeated_ext: GenDescExtension; - -/** - * Test that the correct exception is thrown by parseFrom in a corner case - * involving merging, extensions, and required fields. - * - * @generated from message protobuf_unittest.TestMergeExceptionLite - */ -export declare type TestMergeExceptionLite = Message<"protobuf_unittest.TestMergeExceptionLite"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllExtensionsLite all_extensions = 1; - */ - allExtensions?: TestAllExtensionsLite; -}; - -// Describes the message protobuf_unittest.TestMergeExceptionLite. Use `create(TestMergeExceptionLiteDesc)` to create a new TestMergeExceptionLite. -export declare const TestMergeExceptionLiteDesc: GenDescMessage; - -/** - * TestEmptyMessageLite is used to test unknown fields support in lite mode. - * - * @generated from message protobuf_unittest.TestEmptyMessageLite - */ -export declare type TestEmptyMessageLite = Message<"protobuf_unittest.TestEmptyMessageLite"> & { -}; - -// Describes the message protobuf_unittest.TestEmptyMessageLite. Use `create(TestEmptyMessageLiteDesc)` to create a new TestEmptyMessageLite. -export declare const TestEmptyMessageLiteDesc: GenDescMessage; - -/** - * Like above, but declare all field numbers as potential extensions. No - * actual extensions should ever be defined for this type. - * - * @generated from message protobuf_unittest.TestEmptyMessageWithExtensionsLite - */ -export declare type TestEmptyMessageWithExtensionsLite = Message<"protobuf_unittest.TestEmptyMessageWithExtensionsLite"> & { -}; - -// Describes the message protobuf_unittest.TestEmptyMessageWithExtensionsLite. Use `create(TestEmptyMessageWithExtensionsLiteDesc)` to create a new TestEmptyMessageWithExtensionsLite. -export declare const TestEmptyMessageWithExtensionsLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.V1MessageLite - */ -export declare type V1MessageLite = Message<"protobuf_unittest.V1MessageLite"> & { - /** - * @generated from field: required int32 int_field = 1; - */ - intField: number; - - /** - * @generated from field: optional protobuf_unittest.V1EnumLite enum_field = 2 [default = V1_FIRST]; - */ - enumField: V1EnumLite; -}; - -// Describes the message protobuf_unittest.V1MessageLite. Use `create(V1MessageLiteDesc)` to create a new V1MessageLite. -export declare const V1MessageLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.V2MessageLite - */ -export declare type V2MessageLite = Message<"protobuf_unittest.V2MessageLite"> & { - /** - * @generated from field: required int32 int_field = 1; - */ - intField: number; - - /** - * @generated from field: optional protobuf_unittest.V2EnumLite enum_field = 2 [default = V2_FIRST]; - */ - enumField: V2EnumLite; -}; - -// Describes the message protobuf_unittest.V2MessageLite. Use `create(V2MessageLiteDesc)` to create a new V2MessageLite. -export declare const V2MessageLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestHugeFieldNumbersLite - */ -export declare type TestHugeFieldNumbersLite = Message<"protobuf_unittest.TestHugeFieldNumbersLite"> & { - /** - * @generated from field: optional int32 optional_int32 = 536870000; - */ - optionalInt32: number; - - /** - * @generated from field: optional int32 fixed_32 = 536870001; - */ - fixed32: number; - - /** - * @generated from field: repeated int32 repeated_int32 = 536870002 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int32 packed_int32 = 536870003 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: optional protobuf_unittest.ForeignEnumLite optional_enum = 536870004; - */ - optionalEnum: ForeignEnumLite; - - /** - * @generated from field: optional string optional_string = 536870005; - */ - optionalString: string; - - /** - * @generated from field: optional bytes optional_bytes = 536870006; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: optional protobuf_unittest.ForeignMessageLite optional_message = 536870007; - */ - optionalMessage?: ForeignMessageLite; - - /** - * @generated from field: optional protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup optionalgroup = 536870008; - */ - optionalgroup?: TestHugeFieldNumbersLite_OptionalGroup; - - /** - * @generated from field: map string_string_map = 536870010; - */ - stringStringMap: { [key: string]: string }; - - /** - * @generated from oneof protobuf_unittest.TestHugeFieldNumbersLite.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 536870011; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite oneof_test_all_types = 536870012; - */ - value: TestAllTypesLite; - case: "oneofTestAllTypes"; - } | { - /** - * @generated from field: string oneof_string = 536870013; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 536870014; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message protobuf_unittest.TestHugeFieldNumbersLite. Use `create(TestHugeFieldNumbersLiteDesc)` to create a new TestHugeFieldNumbersLite. -export declare const TestHugeFieldNumbersLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup - */ -export declare type TestHugeFieldNumbersLite_OptionalGroup = Message<"protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup"> & { - /** - * @generated from field: optional int32 group_a = 536870009; - */ - groupA: number; -}; - -// Describes the message protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup. Use `create(TestHugeFieldNumbersLite_OptionalGroupDesc)` to create a new TestHugeFieldNumbersLite_OptionalGroup. -export declare const TestHugeFieldNumbersLite_OptionalGroupDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestOneofParsingLite - */ -export declare type TestOneofParsingLite = Message<"protobuf_unittest.TestOneofParsingLite"> & { - /** - * @generated from oneof protobuf_unittest.TestOneofParsingLite.oneof_field - */ - oneofField: { - /** - * @generated from field: int32 oneof_int32 = 1; - */ - value: number; - case: "oneofInt32"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite oneof_submessage = 2; - */ - value: TestAllTypesLite; - case: "oneofSubmessage"; - } | { - /** - * @generated from field: string oneof_string = 3; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 4 [default = "default bytes"]; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { - /** - * @generated from field: string oneof_string_cord = 5 [default = "default Cord"]; - */ - value: string; - case: "oneofStringCord"; - } | { - /** - * @generated from field: bytes oneof_bytes_cord = 6; - */ - value: Uint8Array; - case: "oneofBytesCord"; - } | { - /** - * @generated from field: string oneof_string_string_piece = 7; - */ - value: string; - case: "oneofStringStringPiece"; - } | { - /** - * @generated from field: bytes oneof_bytes_string_piece = 8 [default = "default StringPiece"]; - */ - value: Uint8Array; - case: "oneofBytesStringPiece"; - } | { - /** - * @generated from field: protobuf_unittest.V2EnumLite oneof_enum = 9; - */ - value: V2EnumLite; - case: "oneofEnum"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message protobuf_unittest.TestOneofParsingLite. Use `create(TestOneofParsingLiteDesc)` to create a new TestOneofParsingLite. -export declare const TestOneofParsingLiteDesc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.TestMessageSetLite - */ -export declare type TestMessageSetLite = Message<"protobuf_unittest.TestMessageSetLite"> & { -}; - -// Describes the message protobuf_unittest.TestMessageSetLite. Use `create(TestMessageSetLiteDesc)` to create a new TestMessageSetLite. -export declare const TestMessageSetLiteDesc: GenDescMessage; - -/** - * The following four messages are set up to test for wire compatibility between - * packed and non-packed repeated fields. We use the field number 2048, because - * that is large enough to require a 3-byte varint for the tag. - * - * @generated from message protobuf_unittest.PackedInt32 - */ -export declare type PackedInt32 = Message<"protobuf_unittest.PackedInt32"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 2048 [packed = true]; - */ - repeatedInt32: number[]; -}; - -// Describes the message protobuf_unittest.PackedInt32. Use `create(PackedInt32Desc)` to create a new PackedInt32. -export declare const PackedInt32Desc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.NonPackedInt32 - */ -export declare type NonPackedInt32 = Message<"protobuf_unittest.NonPackedInt32"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 2048; - */ - repeatedInt32: number[]; -}; - -// Describes the message protobuf_unittest.NonPackedInt32. Use `create(NonPackedInt32Desc)` to create a new NonPackedInt32. -export declare const NonPackedInt32Desc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.PackedFixed32 - */ -export declare type PackedFixed32 = Message<"protobuf_unittest.PackedFixed32"> & { - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 2048 [packed = true]; - */ - repeatedFixed32: number[]; -}; - -// Describes the message protobuf_unittest.PackedFixed32. Use `create(PackedFixed32Desc)` to create a new PackedFixed32. -export declare const PackedFixed32Desc: GenDescMessage; - -/** - * @generated from message protobuf_unittest.NonPackedFixed32 - */ -export declare type NonPackedFixed32 = Message<"protobuf_unittest.NonPackedFixed32"> & { - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 2048; - */ - repeatedFixed32: number[]; -}; - -// Describes the message protobuf_unittest.NonPackedFixed32. Use `create(NonPackedFixed32Desc)` to create a new NonPackedFixed32. -export declare const NonPackedFixed32Desc: GenDescMessage; - -/** - * Test an enum that has multiple values with the same number. - * - * @generated from message protobuf_unittest.DupEnum - */ -export declare type DupEnum = Message<"protobuf_unittest.DupEnum"> & { -}; - -// Describes the message protobuf_unittest.DupEnum. Use `create(DupEnumDesc)` to create a new DupEnum. -export declare const DupEnumDesc: GenDescMessage; - -/** - * @generated from enum protobuf_unittest.DupEnum.TestEnumWithDupValueLite - */ -export enum DupEnum_TestEnumWithDupValueLite { - /** - * @generated from enum value: FOO1 = 1; - */ - FOO1 = 1, - - /** - * @generated from enum value: BAR1 = 2; - */ - BAR1 = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * @generated from enum value: FOO2 = 1; - */ - FOO2 = 1, - - /** - * @generated from enum value: BAR2 = 2; - */ - BAR2 = 2, -} - -// Describes the enum protobuf_unittest.DupEnum.TestEnumWithDupValueLite. -export declare const DupEnum_TestEnumWithDupValueLiteDesc: GenDescEnum; - -/** - * @generated from message protobuf_unittest.RecursiveMessage - */ -export declare type RecursiveMessage = Message<"protobuf_unittest.RecursiveMessage"> & { - /** - * @generated from field: optional protobuf_unittest.RecursiveMessage recurse = 1; - */ - recurse?: RecursiveMessage; - - /** - * @generated from field: optional bytes payload = 2; - */ - payload: Uint8Array; -}; - -// Describes the message protobuf_unittest.RecursiveMessage. Use `create(RecursiveMessageDesc)` to create a new RecursiveMessage. -export declare const RecursiveMessageDesc: GenDescMessage; - -/** - * @generated from enum protobuf_unittest.ForeignEnumLite - */ -export enum ForeignEnumLite { - /** - * @generated from enum value: FOREIGN_LITE_FOO = 4; - */ - FOREIGN_LITE_FOO = 4, - - /** - * @generated from enum value: FOREIGN_LITE_BAZ = 6; - */ - FOREIGN_LITE_BAZ = 6, - - /** - * @generated from enum value: FOREIGN_LITE_BAR = 5; - */ - FOREIGN_LITE_BAR = 5, -} - -// Describes the enum protobuf_unittest.ForeignEnumLite. -export declare const ForeignEnumLiteDesc: GenDescEnum; - -/** - * @generated from enum protobuf_unittest.V1EnumLite - */ -export enum V1EnumLite { - /** - * @generated from enum value: V1_FIRST = 1; - */ - V1_FIRST = 1, -} - -// Describes the enum protobuf_unittest.V1EnumLite. -export declare const V1EnumLiteDesc: GenDescEnum; - -/** - * @generated from enum protobuf_unittest.V2EnumLite - */ -export enum V2EnumLite { - /** - * @generated from enum value: V2_FIRST = 1; - */ - V2_FIRST = 1, - - /** - * @generated from enum value: V2_SECOND = 2; - */ - V2_SECOND = 2, -} - -// Describes the enum protobuf_unittest.V2EnumLite. -export declare const V2EnumLiteDesc: GenDescEnum; - -/** - * Singular - * - * @generated from extension: optional int32 optional_int32_extension_lite = 1; - */ -export declare const optional_int32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional int64 optional_int64_extension_lite = 2; - */ -export declare const optional_int64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional uint32 optional_uint32_extension_lite = 3; - */ -export declare const optional_uint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional uint64 optional_uint64_extension_lite = 4; - */ -export declare const optional_uint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sint32 optional_sint32_extension_lite = 5; - */ -export declare const optional_sint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sint64 optional_sint64_extension_lite = 6; - */ -export declare const optional_sint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional fixed32 optional_fixed32_extension_lite = 7; - */ -export declare const optional_fixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional fixed64 optional_fixed64_extension_lite = 8; - */ -export declare const optional_fixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sfixed32 optional_sfixed32_extension_lite = 9; - */ -export declare const optional_sfixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sfixed64 optional_sfixed64_extension_lite = 10; - */ -export declare const optional_sfixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional float optional_float_extension_lite = 11; - */ -export declare const optional_float_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional double optional_double_extension_lite = 12; - */ -export declare const optional_double_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional bool optional_bool_extension_lite = 13; - */ -export declare const optional_bool_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional string optional_string_extension_lite = 14; - */ -export declare const optional_string_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional bytes optional_bytes_extension_lite = 15; - */ -export declare const optional_bytes_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.OptionalGroup_extension_lite optionalgroup_extension_lite = 16; - */ -export declare const optionalgroup_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_nested_message_extension_lite = 18; - */ -export declare const optional_nested_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.ForeignMessageLite optional_foreign_message_extension_lite = 19; - */ -export declare const optional_foreign_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest_import.ImportMessageLite optional_import_message_extension_lite = 20; - */ -export declare const optional_import_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedEnum optional_nested_enum_extension_lite = 21; - */ -export declare const optional_nested_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.ForeignEnumLite optional_foreign_enum_extension_lite = 22; - */ -export declare const optional_foreign_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest_import.ImportEnumLite optional_import_enum_extension_lite = 23; - */ -export declare const optional_import_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional string optional_string_piece_extension_lite = 24; - */ -export declare const optional_string_piece_extension_lite: GenDescExtension; - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: optional string optional_cord_extension_lite = 25; - */ -export declare const optional_cord_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest_import.PublicImportMessageLite optional_public_import_message_extension_lite = 26; - */ -export declare const optional_public_import_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_lazy_message_extension_lite = 27; - */ -export declare const optional_lazy_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_unverified_lazy_message_extension_lite = 28; - */ -export declare const optional_unverified_lazy_message_extension_lite: GenDescExtension; - -/** - * Repeated - * - * @generated from extension: repeated int32 repeated_int32_extension_lite = 31; - */ -export declare const repeated_int32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated int64 repeated_int64_extension_lite = 32; - */ -export declare const repeated_int64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated uint32 repeated_uint32_extension_lite = 33; - */ -export declare const repeated_uint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated uint64 repeated_uint64_extension_lite = 34; - */ -export declare const repeated_uint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sint32 repeated_sint32_extension_lite = 35; - */ -export declare const repeated_sint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sint64 repeated_sint64_extension_lite = 36; - */ -export declare const repeated_sint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated fixed32 repeated_fixed32_extension_lite = 37; - */ -export declare const repeated_fixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated fixed64 repeated_fixed64_extension_lite = 38; - */ -export declare const repeated_fixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sfixed32 repeated_sfixed32_extension_lite = 39; - */ -export declare const repeated_sfixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sfixed64 repeated_sfixed64_extension_lite = 40; - */ -export declare const repeated_sfixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated float repeated_float_extension_lite = 41; - */ -export declare const repeated_float_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated double repeated_double_extension_lite = 42; - */ -export declare const repeated_double_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated bool repeated_bool_extension_lite = 43; - */ -export declare const repeated_bool_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated string repeated_string_extension_lite = 44; - */ -export declare const repeated_string_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated bytes repeated_bytes_extension_lite = 45; - */ -export declare const repeated_bytes_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.RepeatedGroup_extension_lite repeatedgroup_extension_lite = 46; - */ -export declare const repeatedgroup_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_nested_message_extension_lite = 48; - */ -export declare const repeated_nested_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.ForeignMessageLite repeated_foreign_message_extension_lite = 49; - */ -export declare const repeated_foreign_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest_import.ImportMessageLite repeated_import_message_extension_lite = 50; - */ -export declare const repeated_import_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedEnum repeated_nested_enum_extension_lite = 51; - */ -export declare const repeated_nested_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.ForeignEnumLite repeated_foreign_enum_extension_lite = 52; - */ -export declare const repeated_foreign_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest_import.ImportEnumLite repeated_import_enum_extension_lite = 53; - */ -export declare const repeated_import_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated string repeated_string_piece_extension_lite = 54; - */ -export declare const repeated_string_piece_extension_lite: GenDescExtension; - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: repeated string repeated_cord_extension_lite = 55; - */ -export declare const repeated_cord_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_lazy_message_extension_lite = 57; - */ -export declare const repeated_lazy_message_extension_lite: GenDescExtension; - -/** - * Singular with defaults - * - * @generated from extension: optional int32 default_int32_extension_lite = 61 [default = 41]; - */ -export declare const default_int32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional int64 default_int64_extension_lite = 62 [default = 42]; - */ -export declare const default_int64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional uint32 default_uint32_extension_lite = 63 [default = 43]; - */ -export declare const default_uint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional uint64 default_uint64_extension_lite = 64 [default = 44]; - */ -export declare const default_uint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sint32 default_sint32_extension_lite = 65 [default = -45]; - */ -export declare const default_sint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sint64 default_sint64_extension_lite = 66 [default = 46]; - */ -export declare const default_sint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional fixed32 default_fixed32_extension_lite = 67 [default = 47]; - */ -export declare const default_fixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional fixed64 default_fixed64_extension_lite = 68 [default = 48]; - */ -export declare const default_fixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sfixed32 default_sfixed32_extension_lite = 69 [default = 49]; - */ -export declare const default_sfixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional sfixed64 default_sfixed64_extension_lite = 70 [default = -50]; - */ -export declare const default_sfixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional float default_float_extension_lite = 71 [default = 51.5]; - */ -export declare const default_float_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional double default_double_extension_lite = 72 [default = 52000]; - */ -export declare const default_double_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional bool default_bool_extension_lite = 73 [default = true]; - */ -export declare const default_bool_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional string default_string_extension_lite = 74 [default = "hello"]; - */ -export declare const default_string_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional bytes default_bytes_extension_lite = 75 [default = "world"]; - */ -export declare const default_bytes_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedEnum default_nested_enum_extension_lite = 81 [default = BAR]; - */ -export declare const default_nested_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.ForeignEnumLite default_foreign_enum_extension_lite = 82 [default = FOREIGN_LITE_BAR]; - */ -export declare const default_foreign_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest_import.ImportEnumLite default_import_enum_extension_lite = 83 [default = IMPORT_LITE_BAR]; - */ -export declare const default_import_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional string default_string_piece_extension_lite = 84 [default = "abc"]; - */ -export declare const default_string_piece_extension_lite: GenDescExtension; - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: optional string default_cord_extension_lite = 85 [default = "123"]; - */ -export declare const default_cord_extension_lite: GenDescExtension; - -/** - * For oneof test - * - * @generated from extension: optional uint32 oneof_uint32_extension_lite = 111; - */ -export declare const oneof_uint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage oneof_nested_message_extension_lite = 112; - */ -export declare const oneof_nested_message_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional string oneof_string_extension_lite = 113; - */ -export declare const oneof_string_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional bytes oneof_bytes_extension_lite = 114; - */ -export declare const oneof_bytes_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated int32 packed_int32_extension_lite = 90 [packed = true]; - */ -export declare const packed_int32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated int64 packed_int64_extension_lite = 91 [packed = true]; - */ -export declare const packed_int64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated uint32 packed_uint32_extension_lite = 92 [packed = true]; - */ -export declare const packed_uint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated uint64 packed_uint64_extension_lite = 93 [packed = true]; - */ -export declare const packed_uint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sint32 packed_sint32_extension_lite = 94 [packed = true]; - */ -export declare const packed_sint32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sint64 packed_sint64_extension_lite = 95 [packed = true]; - */ -export declare const packed_sint64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated fixed32 packed_fixed32_extension_lite = 96 [packed = true]; - */ -export declare const packed_fixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated fixed64 packed_fixed64_extension_lite = 97 [packed = true]; - */ -export declare const packed_fixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sfixed32 packed_sfixed32_extension_lite = 98 [packed = true]; - */ -export declare const packed_sfixed32_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated sfixed64 packed_sfixed64_extension_lite = 99 [packed = true]; - */ -export declare const packed_sfixed64_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated float packed_float_extension_lite = 100 [packed = true]; - */ -export declare const packed_float_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated double packed_double_extension_lite = 101 [packed = true]; - */ -export declare const packed_double_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated bool packed_bool_extension_lite = 102 [packed = true]; - */ -export declare const packed_bool_extension_lite: GenDescExtension; - -/** - * @generated from extension: repeated protobuf_unittest.ForeignEnumLite packed_enum_extension_lite = 103 [packed = true]; - */ -export declare const packed_enum_extension_lite: GenDescExtension; - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite test_all_types_lite = 536860000; - */ -export declare const test_all_types_lite: GenDescExtension; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_lite_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_lite_pb.js deleted file mode 100644 index b939c0dda..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_lite_pb.js +++ /dev/null @@ -1,795 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// -// This is like unittest.proto but with optimize_for = LITE_RUNTIME. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_lite.proto (package protobuf_unittest, syntax proto2) -/* eslint-disable */ - -import { enumDesc, extDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest_import_lite } from "./unittest_import_lite_pb.js"; - -export const fileDesc_google_protobuf_unittest_lite = /*@__PURE__*/ - fileDesc("CiNnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfbGl0ZS5wcm90bxIRcHJvdG9idWZfdW5pdHRlc3QiqRwKEFRlc3RBbGxUeXBlc0xpdGUSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSSAoNb3B0aW9uYWxncm91cBgQIAEoCjIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuT3B0aW9uYWxHcm91cBJSChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkTWVzc2FnZRJHChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZUxpdGUSTAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZUxpdGUSTAoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZEVudW0SQQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlEkYKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMigucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1MaXRlEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESWQoeb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlGBogASgLMjEucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VMaXRlElQKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkTWVzc2FnZUICKAESXwogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAngBEhYKDnJlcGVhdGVkX2ludDMyGB8gAygFEhYKDnJlcGVhdGVkX2ludDY0GCAgAygDEhcKD3JlcGVhdGVkX3VpbnQzMhghIAMoDRIXCg9yZXBlYXRlZF91aW50NjQYIiADKAQSFwoPcmVwZWF0ZWRfc2ludDMyGCMgAygREhcKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoEhIYChByZXBlYXRlZF9maXhlZDMyGCUgAygHEhgKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAYSGQoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA8SGQoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBASFgoOcmVwZWF0ZWRfZmxvYXQYKSADKAISFwoPcmVwZWF0ZWRfZG91YmxlGCogAygBEhUKDXJlcGVhdGVkX2Jvb2wYKyADKAgSFwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJEhYKDnJlcGVhdGVkX2J5dGVzGC0gAygMEkgKDXJlcGVhdGVkZ3JvdXAYLiADKAoyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLlJlcGVhdGVkR3JvdXASUgoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2USRwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiUucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VMaXRlEkwKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VMaXRlEkwKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZS5OZXN0ZWRFbnVtEkEKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIiLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtTGl0ZRJGChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIoLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtTGl0ZRIhChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCEhkKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBElQKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkTWVzc2FnZUICKAESGQoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDISGgoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NBIbCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3EhsKD2RlZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwEhsKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZRIdCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGQSUAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkRW51bToDQkFSElIKFGRlZmF1bHRfZm9yZWlnbl9lbnVtGFIgASgOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlOhBGT1JFSUdOX0xJVEVfQkFSElYKE2RlZmF1bHRfaW1wb3J0X2VudW0YUyABKA4yKC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bUxpdGU6D0lNUE9SVF9MSVRFX0JBUhIlChRkZWZhdWx0X3N0cmluZ19waWVjZRhUIAEoCToDYWJjQgIIAhIdCgxkZWZhdWx0X2NvcmQYVSABKAk6AzEyM0ICCAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASUQoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAEloKGW9uZW9mX2xhenlfbmVzdGVkX21lc3NhZ2UYcyABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAigBSAASUwoVb25lb2ZfbmVzdGVkX21lc3NhZ2UyGHUgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZS5OZXN0ZWRNZXNzYWdlMkgAEh4KFmRlY2VwdGl2ZWx5X25hbWVkX2xpc3QYdCABKAUaNwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBRIKCgJjYxgCIAEoAxIOCgJkZBgDIAMoBUICEAEaHAoOTmVzdGVkTWVzc2FnZTISCgoCZGQYASABKAUaGgoNT3B0aW9uYWxHcm91cBIJCgFhGBEgASgFGhoKDVJlcGVhdGVkR3JvdXASCQoBYRgvIAEoBSInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQg0KC29uZW9mX2ZpZWxkIh8KEkZvcmVpZ25NZXNzYWdlTGl0ZRIJCgFjGAEgASgFIrIDChNUZXN0UGFja2VkVHlwZXNMaXRlEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI7CgtwYWNrZWRfZW51bRhnIAMoDjIiLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtTGl0ZUICEAEiIQoVVGVzdEFsbEV4dGVuc2lvbnNMaXRlKggIARCAgICAAiIpChxPcHRpb25hbEdyb3VwX2V4dGVuc2lvbl9saXRlEgkKAWEYESABKAUiKQocUmVwZWF0ZWRHcm91cF9leHRlbnNpb25fbGl0ZRIJCgFhGC8gASgFIiQKGFRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZSoICAEQgICAgAIibwoXVGVzdE5lc3RlZEV4dGVuc2lvbkxpdGUyVAoQbmVzdGVkX2V4dGVuc2lvbhIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRi5YCABKAVSD25lc3RlZEV4dGVuc2lvbiK2AQoSVGVzdERlcHJlY2F0ZWRMaXRlEhwKEGRlcHJlY2F0ZWRfZmllbGQYASABKAVCAhgBEh0KEWRlcHJlY2F0ZWRfZmllbGQyGAIgAigFQgIYARIdChFkZXByZWNhdGVkX2ZpZWxkMxgDIAEoCUICGAESRAoRZGVwcmVjYXRlZF9maWVsZDQYBCABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RGVwcmVjYXRlZExpdGVCAhgBIuUKChRUZXN0UGFyc2luZ01lcmdlTGl0ZRI/ChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlEj8KEm9wdGlvbmFsX2FsbF90eXBlcxgCIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUSPwoScmVwZWF0ZWRfYWxsX3R5cGVzGAMgAygLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZRJMCg1vcHRpb25hbGdyb3VwGAogASgKMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZUxpdGUuT3B0aW9uYWxHcm91cBJMCg1yZXBlYXRlZGdyb3VwGBQgAygKMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZUxpdGUuUmVwZWF0ZWRHcm91cBrOBAoXUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3ISMwoGZmllbGQxGAEgAygLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZRIzCgZmaWVsZDIYAiADKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlEjMKBmZpZWxkMxgDIAMoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUSVgoGZ3JvdXAxGAogAygKMkYucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZUxpdGUuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxElYKBmdyb3VwMhgUIAMoCjJGLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2VMaXRlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMhIyCgRleHQxGOgHIAMoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUSMgoEZXh0MhjpByADKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlGj0KBkdyb3VwMRIzCgZmaWVsZDEYCyABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlGj0KBkdyb3VwMhIzCgZmaWVsZDEYFSABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlGlYKDU9wdGlvbmFsR3JvdXASRQoYb3B0aW9uYWxfZ3JvdXBfYWxsX3R5cGVzGAsgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZRpWCg1SZXBlYXRlZEdyb3VwEkUKGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUqCQjoBxCAgICAAjJwCgxvcHRpb25hbF9leHQSJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlTGl0ZRjoByABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlUgtvcHRpb25hbEV4dDJwCgxyZXBlYXRlZF9leHQSJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlTGl0ZRjpByADKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlUgtyZXBlYXRlZEV4dCJaChZUZXN0TWVyZ2VFeGNlcHRpb25MaXRlEkAKDmFsbF9leHRlbnNpb25zGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlIhYKFFRlc3RFbXB0eU1lc3NhZ2VMaXRlIi4KIlRlc3RFbXB0eU1lc3NhZ2VXaXRoRXh0ZW5zaW9uc0xpdGUqCAgBEICAgIACIl8KDVYxTWVzc2FnZUxpdGUSEQoJaW50X2ZpZWxkGAEgAigFEjsKCmVudW1fZmllbGQYAiABKA4yHS5wcm90b2J1Zl91bml0dGVzdC5WMUVudW1MaXRlOghWMV9GSVJTVCJfCg1WMk1lc3NhZ2VMaXRlEhEKCWludF9maWVsZBgBIAIoBRI7CgplbnVtX2ZpZWxkGAIgASgOMh0ucHJvdG9idWZfdW5pdHRlc3QuVjJFbnVtTGl0ZToIVjJfRklSU1QilQYKGFRlc3RIdWdlRmllbGROdW1iZXJzTGl0ZRIaCg5vcHRpb25hbF9pbnQzMhjw+P//ASABKAUSFAoIZml4ZWRfMzIY8fj//wEgASgFEh4KDnJlcGVhdGVkX2ludDMyGPL4//8BIAMoBUICEAASHAoMcGFja2VkX2ludDMyGPP4//8BIAMoBUICEAESPQoNb3B0aW9uYWxfZW51bRj0+P//ASABKA4yIi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUxpdGUSGwoPb3B0aW9uYWxfc3RyaW5nGPX4//8BIAEoCRIaCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAwSQwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZUxpdGUSVAoNb3B0aW9uYWxncm91cBj4+P//ASABKAoyOS5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVyc0xpdGUuT3B0aW9uYWxHcm91cBJfChFzdHJpbmdfc3RyaW5nX21hcBj6+P//ASADKAsyQC5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVyc0xpdGUuU3RyaW5nU3RyaW5nTWFwRW50cnkSGgoMb25lb2ZfdWludDMyGPv4//8BIAEoDUgAEkcKFG9uZW9mX3Rlc3RfYWxsX3R5cGVzGPz4//8BIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGVIABIaCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSAASGQoLb25lb2ZfYnl0ZXMY/vj//wEgASgMSAAaJAoNT3B0aW9uYWxHcm91cBITCgdncm91cF9hGPn4//8BIAEoBRo2ChRTdHJpbmdTdHJpbmdNYXBFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQipQMKFFRlc3RPbmVvZlBhcnNpbmdMaXRlEhUKC29uZW9mX2ludDMyGAEgASgFSAASPwoQb25lb2Zfc3VibWVzc2FnZRgCIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGVIABIWCgxvbmVvZl9zdHJpbmcYAyABKAlIABIkCgtvbmVvZl9ieXRlcxgEIAEoDDoNZGVmYXVsdCBieXRlc0gAEi0KEW9uZW9mX3N0cmluZ19jb3JkGAUgASgJOgxkZWZhdWx0IENvcmRCAggBSAASHgoQb25lb2ZfYnl0ZXNfY29yZBgGIAEoDEICCAFIABInChlvbmVvZl9zdHJpbmdfc3RyaW5nX3BpZWNlGAcgASgJQgIIAkgAEjsKGG9uZW9mX2J5dGVzX3N0cmluZ19waWVjZRgIIAEoDDoTZGVmYXVsdCBTdHJpbmdQaWVjZUICCAJIABIzCgpvbmVvZl9lbnVtGAkgASgOMh0ucHJvdG9idWZfdW5pdHRlc3QuVjJFbnVtTGl0ZUgAQg0KC29uZW9mX2ZpZWxkIiIKElRlc3RNZXNzYWdlU2V0TGl0ZSoICGQQ/////wc6AggBIioKC1BhY2tlZEludDMyEhsKDnJlcGVhdGVkX2ludDMyGIAQIAMoBUICEAEiKQoOTm9uUGFja2VkSW50MzISFwoOcmVwZWF0ZWRfaW50MzIYgBAgAygFIi4KDVBhY2tlZEZpeGVkMzISHQoQcmVwZWF0ZWRfZml4ZWQzMhiAECADKAdCAhABIi0KEE5vblBhY2tlZEZpeGVkMzISGQoQcmVwZWF0ZWRfZml4ZWQzMhiAECADKAciWgoHRHVwRW51bSJPChhUZXN0RW51bVdpdGhEdXBWYWx1ZUxpdGUSCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASJZChBSZWN1cnNpdmVNZXNzYWdlEjQKB3JlY3Vyc2UYASABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5SZWN1cnNpdmVNZXNzYWdlEg8KB3BheWxvYWQYAiABKAwqUwoPRm9yZWlnbkVudW1MaXRlEhQKEEZPUkVJR05fTElURV9GT08QBBIUChBGT1JFSUdOX0xJVEVfQkFaEAYSFAoQRk9SRUlHTl9MSVRFX0JBUhAFKhoKClYxRW51bUxpdGUSDAoIVjFfRklSU1QQASopCgpWMkVudW1MaXRlEgwKCFYyX0ZJUlNUEAESDQoJVjJfU0VDT05EEAI6awodb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYASABKAVSGm9wdGlvbmFsSW50MzJFeHRlbnNpb25MaXRlOmsKHW9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAIgASgDUhpvcHRpb25hbEludDY0RXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYAyABKA1SG29wdGlvbmFsVWludDMyRXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYBCABKARSG29wdGlvbmFsVWludDY0RXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYBSABKBFSG29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYBiABKBJSG29wdGlvbmFsU2ludDY0RXh0ZW5zaW9uTGl0ZTpvCh9vcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAcgASgHUhxvcHRpb25hbEZpeGVkMzJFeHRlbnNpb25MaXRlOm8KH29wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYCCABKAZSHG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbkxpdGU6cQogb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYCSABKA9SHW9wdGlvbmFsU2ZpeGVkMzJFeHRlbnNpb25MaXRlOnEKIG9wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAogASgQUh1vcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uTGl0ZTprCh1vcHRpb25hbF9mbG9hdF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgLIAEoAlIab3B0aW9uYWxGbG9hdEV4dGVuc2lvbkxpdGU6bQoeb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAwgASgBUhtvcHRpb25hbERvdWJsZUV4dGVuc2lvbkxpdGU6aQocb3B0aW9uYWxfYm9vbF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgNIAEoCFIZb3B0aW9uYWxCb29sRXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYDiABKAlSG29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uTGl0ZTprCh1vcHRpb25hbF9ieXRlc19leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgPIAEoDFIab3B0aW9uYWxCeXRlc0V4dGVuc2lvbkxpdGU6mwEKHG9wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYECABKAoyLy5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25hbEdyb3VwX2V4dGVuc2lvbl9saXRlUhpvcHRpb25hbGdyb3VwRXh0ZW5zaW9uTGl0ZTqvAQomb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYEiABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VSIm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbkxpdGU6pQEKJ29wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgTIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlTGl0ZVIjb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbkxpdGU6qQEKJm9wdGlvbmFsX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBQgASgLMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VMaXRlUiJvcHRpb25hbEltcG9ydE1lc3NhZ2VFeHRlbnNpb25MaXRlOqYBCiNvcHRpb25hbF9uZXN0ZWRfZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgVIAEoDjIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkRW51bVIfb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uTGl0ZTqcAQokb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBYgASgOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlUiBvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uTGl0ZTqgAQojb3B0aW9uYWxfaW1wb3J0X2VudW1fZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYFyABKA4yKC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bUxpdGVSH29wdGlvbmFsSW1wb3J0RW51bUV4dGVuc2lvbkxpdGU6fAokb3B0aW9uYWxfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBggASgJQgIIAlIgb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbkxpdGU6aQocb3B0aW9uYWxfY29yZF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgZIAEoCVIZb3B0aW9uYWxDb3JkRXh0ZW5zaW9uTGl0ZTq8AQotb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBogASgLMjEucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VMaXRlUihvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2VFeHRlbnNpb25MaXRlOq8BCiRvcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYGyABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAigBUiBvcHRpb25hbExhenlNZXNzYWdlRXh0ZW5zaW9uTGl0ZTrEAQovb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYHCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAngBUipvcHRpb25hbFVudmVyaWZpZWRMYXp5TWVzc2FnZUV4dGVuc2lvbkxpdGU6awodcmVwZWF0ZWRfaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYHyADKAVSGnJlcGVhdGVkSW50MzJFeHRlbnNpb25MaXRlOmsKHXJlcGVhdGVkX2ludDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCAgAygDUhpyZXBlYXRlZEludDY0RXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYISADKA1SG3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF91aW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYIiADKARSG3JlcGVhdGVkVWludDY0RXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF9zaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYIyADKBFSG3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF9zaW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYJCADKBJSG3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uTGl0ZTpvCh9yZXBlYXRlZF9maXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCUgAygHUhxyZXBlYXRlZEZpeGVkMzJFeHRlbnNpb25MaXRlOm8KH3JlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYJiADKAZSHHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbkxpdGU6cQogcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYJyADKA9SHXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb25MaXRlOnEKIHJlcGVhdGVkX3NmaXhlZDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCggAygQUh1yZXBlYXRlZFNmaXhlZDY0RXh0ZW5zaW9uTGl0ZTprCh1yZXBlYXRlZF9mbG9hdF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgpIAMoAlIacmVwZWF0ZWRGbG9hdEV4dGVuc2lvbkxpdGU6bQoecmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCogAygBUhtyZXBlYXRlZERvdWJsZUV4dGVuc2lvbkxpdGU6aQoccmVwZWF0ZWRfYm9vbF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgrIAMoCFIZcmVwZWF0ZWRCb29sRXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF9zdHJpbmdfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYLCADKAlSG3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uTGl0ZTprCh1yZXBlYXRlZF9ieXRlc19leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgtIAMoDFIacmVwZWF0ZWRCeXRlc0V4dGVuc2lvbkxpdGU6mwEKHHJlcGVhdGVkZ3JvdXBfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYLiADKAoyLy5wcm90b2J1Zl91bml0dGVzdC5SZXBlYXRlZEdyb3VwX2V4dGVuc2lvbl9saXRlUhpyZXBlYXRlZGdyb3VwRXh0ZW5zaW9uTGl0ZTqvAQomcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYMCADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VSInJlcGVhdGVkTmVzdGVkTWVzc2FnZUV4dGVuc2lvbkxpdGU6pQEKJ3JlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgxIAMoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlTGl0ZVIjcmVwZWF0ZWRGb3JlaWduTWVzc2FnZUV4dGVuc2lvbkxpdGU6qQEKJnJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDIgAygLMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VMaXRlUiJyZXBlYXRlZEltcG9ydE1lc3NhZ2VFeHRlbnNpb25MaXRlOqYBCiNyZXBlYXRlZF9uZXN0ZWRfZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgzIAMoDjIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkRW51bVIfcmVwZWF0ZWROZXN0ZWRFbnVtRXh0ZW5zaW9uTGl0ZTqcAQokcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDQgAygOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlUiByZXBlYXRlZEZvcmVpZ25FbnVtRXh0ZW5zaW9uTGl0ZTqgAQojcmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYNSADKA4yKC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bUxpdGVSH3JlcGVhdGVkSW1wb3J0RW51bUV4dGVuc2lvbkxpdGU6fAokcmVwZWF0ZWRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDYgAygJQgIIAlIgcmVwZWF0ZWRTdHJpbmdQaWVjZUV4dGVuc2lvbkxpdGU6aQoccmVwZWF0ZWRfY29yZF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRg3IAMoCVIZcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uTGl0ZTqvAQokcmVwZWF0ZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDkgAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZS5OZXN0ZWRNZXNzYWdlQgIoAVIgcmVwZWF0ZWRMYXp5TWVzc2FnZUV4dGVuc2lvbkxpdGU6bQocZGVmYXVsdF9pbnQzMl9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRg9IAEoBToCNDFSGWRlZmF1bHRJbnQzMkV4dGVuc2lvbkxpdGU6bQocZGVmYXVsdF9pbnQ2NF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRg+IAEoAzoCNDJSGWRlZmF1bHRJbnQ2NEV4dGVuc2lvbkxpdGU6bwodZGVmYXVsdF91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYPyABKA06AjQzUhpkZWZhdWx0VWludDMyRXh0ZW5zaW9uTGl0ZTpvCh1kZWZhdWx0X3VpbnQ2NF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhAIAEoBDoCNDRSGmRlZmF1bHRVaW50NjRFeHRlbnNpb25MaXRlOnAKHWRlZmF1bHRfc2ludDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEEgASgROgMtNDVSGmRlZmF1bHRTaW50MzJFeHRlbnNpb25MaXRlOm8KHWRlZmF1bHRfc2ludDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEIgASgSOgI0NlIaZGVmYXVsdFNpbnQ2NEV4dGVuc2lvbkxpdGU6cQoeZGVmYXVsdF9maXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEMgASgHOgI0N1IbZGVmYXVsdEZpeGVkMzJFeHRlbnNpb25MaXRlOnEKHmRlZmF1bHRfZml4ZWQ2NF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhEIAEoBjoCNDhSG2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uTGl0ZTpzCh9kZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEUgASgPOgI0OVIcZGVmYXVsdFNmaXhlZDMyRXh0ZW5zaW9uTGl0ZTp0Ch9kZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEYgASgQOgMtNTBSHGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbkxpdGU6bwocZGVmYXVsdF9mbG9hdF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhHIAEoAjoENTEuNVIZZGVmYXVsdEZsb2F0RXh0ZW5zaW9uTGl0ZTpyCh1kZWZhdWx0X2RvdWJsZV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhIIAEoAToFNTIwMDBSGmRlZmF1bHREb3VibGVFeHRlbnNpb25MaXRlOm0KG2RlZmF1bHRfYm9vbF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhJIAEoCDoEdHJ1ZVIYZGVmYXVsdEJvb2xFeHRlbnNpb25MaXRlOnIKHWRlZmF1bHRfc3RyaW5nX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEogASgJOgVoZWxsb1IaZGVmYXVsdFN0cmluZ0V4dGVuc2lvbkxpdGU6cAocZGVmYXVsdF9ieXRlc19leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhLIAEoDDoFd29ybGRSGWRlZmF1bHRCeXRlc0V4dGVuc2lvbkxpdGU6qQEKImRlZmF1bHRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYUSABKA4yLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZEVudW06A0JBUlIeZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb25MaXRlOqwBCiNkZWZhdWx0X2ZvcmVpZ25fZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhSIAEoDjIiLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtTGl0ZToQRk9SRUlHTl9MSVRFX0JBUlIfZGVmYXVsdEZvcmVpZ25FbnVtRXh0ZW5zaW9uTGl0ZTqvAQoiZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhTIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtTGl0ZToPSU1QT1JUX0xJVEVfQkFSUh5kZWZhdWx0SW1wb3J0RW51bUV4dGVuc2lvbkxpdGU6fwojZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYVCABKAk6A2FiY0ICCAJSH2RlZmF1bHRTdHJpbmdQaWVjZUV4dGVuc2lvbkxpdGU6bAobZGVmYXVsdF9jb3JkX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGFUgASgJOgMxMjNSGGRlZmF1bHRDb3JkRXh0ZW5zaW9uTGl0ZTpnChtvbmVvZl91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYbyABKA1SGG9uZW9mVWludDMyRXh0ZW5zaW9uTGl0ZTqpAQojb25lb2ZfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYcCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VSH29uZW9mTmVzdGVkTWVzc2FnZUV4dGVuc2lvbkxpdGU6Zwobb25lb2Zfc3RyaW5nX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGHEgASgJUhhvbmVvZlN0cmluZ0V4dGVuc2lvbkxpdGU6ZQoab25lb2ZfYnl0ZXNfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYciABKAxSF29uZW9mQnl0ZXNFeHRlbnNpb25MaXRlOm4KG3BhY2tlZF9pbnQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhaIAMoBUICEAFSGHBhY2tlZEludDMyRXh0ZW5zaW9uTGl0ZTpuChtwYWNrZWRfaW50NjRfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYWyADKANCAhABUhhwYWNrZWRJbnQ2NEV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3VpbnQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhcIAMoDUICEAFSGXBhY2tlZFVpbnQzMkV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3VpbnQ2NF9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhdIAMoBEICEAFSGXBhY2tlZFVpbnQ2NEV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3NpbnQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRheIAMoEUICEAFSGXBhY2tlZFNpbnQzMkV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3NpbnQ2NF9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhfIAMoEkICEAFSGXBhY2tlZFNpbnQ2NEV4dGVuc2lvbkxpdGU6cgodcGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYYCADKAdCAhABUhpwYWNrZWRGaXhlZDMyRXh0ZW5zaW9uTGl0ZTpyCh1wYWNrZWRfZml4ZWQ2NF9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhhIAMoBkICEAFSGnBhY2tlZEZpeGVkNjRFeHRlbnNpb25MaXRlOnQKHnBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhiIAMoD0ICEAFSG3BhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uTGl0ZTp0Ch5wYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYYyADKBBCAhABUhtwYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbkxpdGU6bgobcGFja2VkX2Zsb2F0X2V4dGVuc2lvbl9saXRlEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnNMaXRlGGQgAygCQgIQAVIYcGFja2VkRmxvYXRFeHRlbnNpb25MaXRlOnAKHHBhY2tlZF9kb3VibGVfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYZSADKAFCAhABUhlwYWNrZWREb3VibGVFeHRlbnNpb25MaXRlOmwKGnBhY2tlZF9ib29sX2V4dGVuc2lvbl9saXRlEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnNMaXRlGGYgAygIQgIQAVIXcGFja2VkQm9vbEV4dGVuc2lvbkxpdGU6kAEKGnBhY2tlZF9lbnVtX2V4dGVuc2lvbl9saXRlEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnNMaXRlGGcgAygOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlQgIQAVIXcGFja2VkRW51bUV4dGVuc2lvbkxpdGU6gwEKE3Rlc3RfYWxsX3R5cGVzX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVyc0xpdGUY4Kr//wEgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZVIQdGVzdEFsbFR5cGVzTGl0ZUIaChNjb20uZ29vZ2xlLnByb3RvYnVmSAP4AQE", [fileDesc_google_protobuf_unittest_import_lite]); - -// Describes the message protobuf_unittest.TestAllTypesLite. Use `create(TestAllTypesLiteDesc)` to create a new TestAllTypesLite. -export const TestAllTypesLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0); - -// Describes the message protobuf_unittest.TestAllTypesLite.NestedMessage. Use `create(TestAllTypesLite_NestedMessageDesc)` to create a new TestAllTypesLite_NestedMessage. -export const TestAllTypesLite_NestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 0); - -// Describes the message protobuf_unittest.TestAllTypesLite.NestedMessage2. Use `create(TestAllTypesLite_NestedMessage2Desc)` to create a new TestAllTypesLite_NestedMessage2. -export const TestAllTypesLite_NestedMessage2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 1); - -// Describes the message protobuf_unittest.TestAllTypesLite.OptionalGroup. Use `create(TestAllTypesLite_OptionalGroupDesc)` to create a new TestAllTypesLite_OptionalGroup. -export const TestAllTypesLite_OptionalGroupDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 2); - -// Describes the message protobuf_unittest.TestAllTypesLite.RepeatedGroup. Use `create(TestAllTypesLite_RepeatedGroupDesc)` to create a new TestAllTypesLite_RepeatedGroup. -export const TestAllTypesLite_RepeatedGroupDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 3); - -// Describes the enum protobuf_unittest.TestAllTypesLite.NestedEnum. -export const TestAllTypesLite_NestedEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 0, 0); - -/** - * @generated from enum protobuf_unittest.TestAllTypesLite.NestedEnum - */ -export const TestAllTypesLite_NestedEnum = /*@__PURE__*/ - tsEnum(TestAllTypesLite_NestedEnumDesc); - -// Describes the message protobuf_unittest.ForeignMessageLite. Use `create(ForeignMessageLiteDesc)` to create a new ForeignMessageLite. -export const ForeignMessageLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 1); - -// Describes the message protobuf_unittest.TestPackedTypesLite. Use `create(TestPackedTypesLiteDesc)` to create a new TestPackedTypesLite. -export const TestPackedTypesLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 2); - -// Describes the message protobuf_unittest.TestAllExtensionsLite. Use `create(TestAllExtensionsLiteDesc)` to create a new TestAllExtensionsLite. -export const TestAllExtensionsLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 3); - -// Describes the message protobuf_unittest.OptionalGroup_extension_lite. Use `create(OptionalGroup_extension_liteDesc)` to create a new OptionalGroup_extension_lite. -export const OptionalGroup_extension_liteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 4); - -// Describes the message protobuf_unittest.RepeatedGroup_extension_lite. Use `create(RepeatedGroup_extension_liteDesc)` to create a new RepeatedGroup_extension_lite. -export const RepeatedGroup_extension_liteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 5); - -// Describes the message protobuf_unittest.TestPackedExtensionsLite. Use `create(TestPackedExtensionsLiteDesc)` to create a new TestPackedExtensionsLite. -export const TestPackedExtensionsLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 6); - -// Describes the message protobuf_unittest.TestNestedExtensionLite. Use `create(TestNestedExtensionLiteDesc)` to create a new TestNestedExtensionLite. -export const TestNestedExtensionLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 7); - -/** - * @generated from extension: optional int32 nested_extension = 12345; - */ -export const TestNestedExtensionLite_nested_extension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 7, 0); - -// Describes the message protobuf_unittest.TestDeprecatedLite. Use `create(TestDeprecatedLiteDesc)` to create a new TestDeprecatedLite. -export const TestDeprecatedLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 8); - -// Describes the message protobuf_unittest.TestParsingMergeLite. Use `create(TestParsingMergeLiteDesc)` to create a new TestParsingMergeLite. -export const TestParsingMergeLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9); - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator. Use `create(TestParsingMergeLite_RepeatedFieldsGeneratorDesc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator. -export const TestParsingMergeLite_RepeatedFieldsGeneratorDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 0); - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1. Use `create(TestParsingMergeLite_RepeatedFieldsGenerator_Group1Desc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator_Group1. -export const TestParsingMergeLite_RepeatedFieldsGenerator_Group1Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 0, 0); - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2. Use `create(TestParsingMergeLite_RepeatedFieldsGenerator_Group2Desc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator_Group2. -export const TestParsingMergeLite_RepeatedFieldsGenerator_Group2Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 0, 1); - -// Describes the message protobuf_unittest.TestParsingMergeLite.OptionalGroup. Use `create(TestParsingMergeLite_OptionalGroupDesc)` to create a new TestParsingMergeLite_OptionalGroup. -export const TestParsingMergeLite_OptionalGroupDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 1); - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedGroup. Use `create(TestParsingMergeLite_RepeatedGroupDesc)` to create a new TestParsingMergeLite_RepeatedGroup. -export const TestParsingMergeLite_RepeatedGroupDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 2); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite optional_ext = 1000; - */ -export const TestParsingMergeLite_optional_ext = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 9, 0); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite repeated_ext = 1001; - */ -export const TestParsingMergeLite_repeated_ext = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 9, 1); - -// Describes the message protobuf_unittest.TestMergeExceptionLite. Use `create(TestMergeExceptionLiteDesc)` to create a new TestMergeExceptionLite. -export const TestMergeExceptionLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 10); - -// Describes the message protobuf_unittest.TestEmptyMessageLite. Use `create(TestEmptyMessageLiteDesc)` to create a new TestEmptyMessageLite. -export const TestEmptyMessageLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 11); - -// Describes the message protobuf_unittest.TestEmptyMessageWithExtensionsLite. Use `create(TestEmptyMessageWithExtensionsLiteDesc)` to create a new TestEmptyMessageWithExtensionsLite. -export const TestEmptyMessageWithExtensionsLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 12); - -// Describes the message protobuf_unittest.V1MessageLite. Use `create(V1MessageLiteDesc)` to create a new V1MessageLite. -export const V1MessageLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 13); - -// Describes the message protobuf_unittest.V2MessageLite. Use `create(V2MessageLiteDesc)` to create a new V2MessageLite. -export const V2MessageLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 14); - -// Describes the message protobuf_unittest.TestHugeFieldNumbersLite. Use `create(TestHugeFieldNumbersLiteDesc)` to create a new TestHugeFieldNumbersLite. -export const TestHugeFieldNumbersLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 15); - -// Describes the message protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup. Use `create(TestHugeFieldNumbersLite_OptionalGroupDesc)` to create a new TestHugeFieldNumbersLite_OptionalGroup. -export const TestHugeFieldNumbersLite_OptionalGroupDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 15, 0); - -// Describes the message protobuf_unittest.TestOneofParsingLite. Use `create(TestOneofParsingLiteDesc)` to create a new TestOneofParsingLite. -export const TestOneofParsingLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 16); - -// Describes the message protobuf_unittest.TestMessageSetLite. Use `create(TestMessageSetLiteDesc)` to create a new TestMessageSetLite. -export const TestMessageSetLiteDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 17); - -// Describes the message protobuf_unittest.PackedInt32. Use `create(PackedInt32Desc)` to create a new PackedInt32. -export const PackedInt32Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 18); - -// Describes the message protobuf_unittest.NonPackedInt32. Use `create(NonPackedInt32Desc)` to create a new NonPackedInt32. -export const NonPackedInt32Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 19); - -// Describes the message protobuf_unittest.PackedFixed32. Use `create(PackedFixed32Desc)` to create a new PackedFixed32. -export const PackedFixed32Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 20); - -// Describes the message protobuf_unittest.NonPackedFixed32. Use `create(NonPackedFixed32Desc)` to create a new NonPackedFixed32. -export const NonPackedFixed32Desc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 21); - -// Describes the message protobuf_unittest.DupEnum. Use `create(DupEnumDesc)` to create a new DupEnum. -export const DupEnumDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 22); - -// Describes the enum protobuf_unittest.DupEnum.TestEnumWithDupValueLite. -export const DupEnum_TestEnumWithDupValueLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 22, 0); - -/** - * @generated from enum protobuf_unittest.DupEnum.TestEnumWithDupValueLite - */ -export const DupEnum_TestEnumWithDupValueLite = /*@__PURE__*/ - tsEnum(DupEnum_TestEnumWithDupValueLiteDesc); - -// Describes the message protobuf_unittest.RecursiveMessage. Use `create(RecursiveMessageDesc)` to create a new RecursiveMessage. -export const RecursiveMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 23); - -// Describes the enum protobuf_unittest.ForeignEnumLite. -export const ForeignEnumLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 0); - -/** - * @generated from enum protobuf_unittest.ForeignEnumLite - */ -export const ForeignEnumLite = /*@__PURE__*/ - tsEnum(ForeignEnumLiteDesc); - -// Describes the enum protobuf_unittest.V1EnumLite. -export const V1EnumLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 1); - -/** - * @generated from enum protobuf_unittest.V1EnumLite - */ -export const V1EnumLite = /*@__PURE__*/ - tsEnum(V1EnumLiteDesc); - -// Describes the enum protobuf_unittest.V2EnumLite. -export const V2EnumLiteDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 2); - -/** - * @generated from enum protobuf_unittest.V2EnumLite - */ -export const V2EnumLite = /*@__PURE__*/ - tsEnum(V2EnumLiteDesc); - -/** - * Singular - * - * @generated from extension: optional int32 optional_int32_extension_lite = 1; - */ -export const optional_int32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 0); - -/** - * @generated from extension: optional int64 optional_int64_extension_lite = 2; - */ -export const optional_int64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 1); - -/** - * @generated from extension: optional uint32 optional_uint32_extension_lite = 3; - */ -export const optional_uint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 2); - -/** - * @generated from extension: optional uint64 optional_uint64_extension_lite = 4; - */ -export const optional_uint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 3); - -/** - * @generated from extension: optional sint32 optional_sint32_extension_lite = 5; - */ -export const optional_sint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 4); - -/** - * @generated from extension: optional sint64 optional_sint64_extension_lite = 6; - */ -export const optional_sint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 5); - -/** - * @generated from extension: optional fixed32 optional_fixed32_extension_lite = 7; - */ -export const optional_fixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 6); - -/** - * @generated from extension: optional fixed64 optional_fixed64_extension_lite = 8; - */ -export const optional_fixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 7); - -/** - * @generated from extension: optional sfixed32 optional_sfixed32_extension_lite = 9; - */ -export const optional_sfixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 8); - -/** - * @generated from extension: optional sfixed64 optional_sfixed64_extension_lite = 10; - */ -export const optional_sfixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 9); - -/** - * @generated from extension: optional float optional_float_extension_lite = 11; - */ -export const optional_float_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 10); - -/** - * @generated from extension: optional double optional_double_extension_lite = 12; - */ -export const optional_double_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 11); - -/** - * @generated from extension: optional bool optional_bool_extension_lite = 13; - */ -export const optional_bool_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 12); - -/** - * @generated from extension: optional string optional_string_extension_lite = 14; - */ -export const optional_string_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 13); - -/** - * @generated from extension: optional bytes optional_bytes_extension_lite = 15; - */ -export const optional_bytes_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 14); - -/** - * @generated from extension: optional protobuf_unittest.OptionalGroup_extension_lite optionalgroup_extension_lite = 16; - */ -export const optionalgroup_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 15); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_nested_message_extension_lite = 18; - */ -export const optional_nested_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 16); - -/** - * @generated from extension: optional protobuf_unittest.ForeignMessageLite optional_foreign_message_extension_lite = 19; - */ -export const optional_foreign_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 17); - -/** - * @generated from extension: optional protobuf_unittest_import.ImportMessageLite optional_import_message_extension_lite = 20; - */ -export const optional_import_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 18); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedEnum optional_nested_enum_extension_lite = 21; - */ -export const optional_nested_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 19); - -/** - * @generated from extension: optional protobuf_unittest.ForeignEnumLite optional_foreign_enum_extension_lite = 22; - */ -export const optional_foreign_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 20); - -/** - * @generated from extension: optional protobuf_unittest_import.ImportEnumLite optional_import_enum_extension_lite = 23; - */ -export const optional_import_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 21); - -/** - * @generated from extension: optional string optional_string_piece_extension_lite = 24; - */ -export const optional_string_piece_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 22); - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: optional string optional_cord_extension_lite = 25; - */ -export const optional_cord_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 23); - -/** - * @generated from extension: optional protobuf_unittest_import.PublicImportMessageLite optional_public_import_message_extension_lite = 26; - */ -export const optional_public_import_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 24); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_lazy_message_extension_lite = 27; - */ -export const optional_lazy_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 25); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_unverified_lazy_message_extension_lite = 28; - */ -export const optional_unverified_lazy_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 26); - -/** - * Repeated - * - * @generated from extension: repeated int32 repeated_int32_extension_lite = 31; - */ -export const repeated_int32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 27); - -/** - * @generated from extension: repeated int64 repeated_int64_extension_lite = 32; - */ -export const repeated_int64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 28); - -/** - * @generated from extension: repeated uint32 repeated_uint32_extension_lite = 33; - */ -export const repeated_uint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 29); - -/** - * @generated from extension: repeated uint64 repeated_uint64_extension_lite = 34; - */ -export const repeated_uint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 30); - -/** - * @generated from extension: repeated sint32 repeated_sint32_extension_lite = 35; - */ -export const repeated_sint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 31); - -/** - * @generated from extension: repeated sint64 repeated_sint64_extension_lite = 36; - */ -export const repeated_sint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 32); - -/** - * @generated from extension: repeated fixed32 repeated_fixed32_extension_lite = 37; - */ -export const repeated_fixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 33); - -/** - * @generated from extension: repeated fixed64 repeated_fixed64_extension_lite = 38; - */ -export const repeated_fixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 34); - -/** - * @generated from extension: repeated sfixed32 repeated_sfixed32_extension_lite = 39; - */ -export const repeated_sfixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 35); - -/** - * @generated from extension: repeated sfixed64 repeated_sfixed64_extension_lite = 40; - */ -export const repeated_sfixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 36); - -/** - * @generated from extension: repeated float repeated_float_extension_lite = 41; - */ -export const repeated_float_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 37); - -/** - * @generated from extension: repeated double repeated_double_extension_lite = 42; - */ -export const repeated_double_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 38); - -/** - * @generated from extension: repeated bool repeated_bool_extension_lite = 43; - */ -export const repeated_bool_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 39); - -/** - * @generated from extension: repeated string repeated_string_extension_lite = 44; - */ -export const repeated_string_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 40); - -/** - * @generated from extension: repeated bytes repeated_bytes_extension_lite = 45; - */ -export const repeated_bytes_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 41); - -/** - * @generated from extension: repeated protobuf_unittest.RepeatedGroup_extension_lite repeatedgroup_extension_lite = 46; - */ -export const repeatedgroup_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 42); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_nested_message_extension_lite = 48; - */ -export const repeated_nested_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 43); - -/** - * @generated from extension: repeated protobuf_unittest.ForeignMessageLite repeated_foreign_message_extension_lite = 49; - */ -export const repeated_foreign_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 44); - -/** - * @generated from extension: repeated protobuf_unittest_import.ImportMessageLite repeated_import_message_extension_lite = 50; - */ -export const repeated_import_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 45); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedEnum repeated_nested_enum_extension_lite = 51; - */ -export const repeated_nested_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 46); - -/** - * @generated from extension: repeated protobuf_unittest.ForeignEnumLite repeated_foreign_enum_extension_lite = 52; - */ -export const repeated_foreign_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 47); - -/** - * @generated from extension: repeated protobuf_unittest_import.ImportEnumLite repeated_import_enum_extension_lite = 53; - */ -export const repeated_import_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 48); - -/** - * @generated from extension: repeated string repeated_string_piece_extension_lite = 54; - */ -export const repeated_string_piece_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 49); - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: repeated string repeated_cord_extension_lite = 55; - */ -export const repeated_cord_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 50); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_lazy_message_extension_lite = 57; - */ -export const repeated_lazy_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 51); - -/** - * Singular with defaults - * - * @generated from extension: optional int32 default_int32_extension_lite = 61 [default = 41]; - */ -export const default_int32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 52); - -/** - * @generated from extension: optional int64 default_int64_extension_lite = 62 [default = 42]; - */ -export const default_int64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 53); - -/** - * @generated from extension: optional uint32 default_uint32_extension_lite = 63 [default = 43]; - */ -export const default_uint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 54); - -/** - * @generated from extension: optional uint64 default_uint64_extension_lite = 64 [default = 44]; - */ -export const default_uint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 55); - -/** - * @generated from extension: optional sint32 default_sint32_extension_lite = 65 [default = -45]; - */ -export const default_sint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 56); - -/** - * @generated from extension: optional sint64 default_sint64_extension_lite = 66 [default = 46]; - */ -export const default_sint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 57); - -/** - * @generated from extension: optional fixed32 default_fixed32_extension_lite = 67 [default = 47]; - */ -export const default_fixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 58); - -/** - * @generated from extension: optional fixed64 default_fixed64_extension_lite = 68 [default = 48]; - */ -export const default_fixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 59); - -/** - * @generated from extension: optional sfixed32 default_sfixed32_extension_lite = 69 [default = 49]; - */ -export const default_sfixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 60); - -/** - * @generated from extension: optional sfixed64 default_sfixed64_extension_lite = 70 [default = -50]; - */ -export const default_sfixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 61); - -/** - * @generated from extension: optional float default_float_extension_lite = 71 [default = 51.5]; - */ -export const default_float_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 62); - -/** - * @generated from extension: optional double default_double_extension_lite = 72 [default = 52000]; - */ -export const default_double_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 63); - -/** - * @generated from extension: optional bool default_bool_extension_lite = 73 [default = true]; - */ -export const default_bool_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 64); - -/** - * @generated from extension: optional string default_string_extension_lite = 74 [default = "hello"]; - */ -export const default_string_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 65); - -/** - * @generated from extension: optional bytes default_bytes_extension_lite = 75 [default = "world"]; - */ -export const default_bytes_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 66); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedEnum default_nested_enum_extension_lite = 81 [default = BAR]; - */ -export const default_nested_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 67); - -/** - * @generated from extension: optional protobuf_unittest.ForeignEnumLite default_foreign_enum_extension_lite = 82 [default = FOREIGN_LITE_BAR]; - */ -export const default_foreign_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 68); - -/** - * @generated from extension: optional protobuf_unittest_import.ImportEnumLite default_import_enum_extension_lite = 83 [default = IMPORT_LITE_BAR]; - */ -export const default_import_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 69); - -/** - * @generated from extension: optional string default_string_piece_extension_lite = 84 [default = "abc"]; - */ -export const default_string_piece_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 70); - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: optional string default_cord_extension_lite = 85 [default = "123"]; - */ -export const default_cord_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 71); - -/** - * For oneof test - * - * @generated from extension: optional uint32 oneof_uint32_extension_lite = 111; - */ -export const oneof_uint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 72); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage oneof_nested_message_extension_lite = 112; - */ -export const oneof_nested_message_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 73); - -/** - * @generated from extension: optional string oneof_string_extension_lite = 113; - */ -export const oneof_string_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 74); - -/** - * @generated from extension: optional bytes oneof_bytes_extension_lite = 114; - */ -export const oneof_bytes_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 75); - -/** - * @generated from extension: repeated int32 packed_int32_extension_lite = 90 [packed = true]; - */ -export const packed_int32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 76); - -/** - * @generated from extension: repeated int64 packed_int64_extension_lite = 91 [packed = true]; - */ -export const packed_int64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 77); - -/** - * @generated from extension: repeated uint32 packed_uint32_extension_lite = 92 [packed = true]; - */ -export const packed_uint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 78); - -/** - * @generated from extension: repeated uint64 packed_uint64_extension_lite = 93 [packed = true]; - */ -export const packed_uint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 79); - -/** - * @generated from extension: repeated sint32 packed_sint32_extension_lite = 94 [packed = true]; - */ -export const packed_sint32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 80); - -/** - * @generated from extension: repeated sint64 packed_sint64_extension_lite = 95 [packed = true]; - */ -export const packed_sint64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 81); - -/** - * @generated from extension: repeated fixed32 packed_fixed32_extension_lite = 96 [packed = true]; - */ -export const packed_fixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 82); - -/** - * @generated from extension: repeated fixed64 packed_fixed64_extension_lite = 97 [packed = true]; - */ -export const packed_fixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 83); - -/** - * @generated from extension: repeated sfixed32 packed_sfixed32_extension_lite = 98 [packed = true]; - */ -export const packed_sfixed32_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 84); - -/** - * @generated from extension: repeated sfixed64 packed_sfixed64_extension_lite = 99 [packed = true]; - */ -export const packed_sfixed64_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 85); - -/** - * @generated from extension: repeated float packed_float_extension_lite = 100 [packed = true]; - */ -export const packed_float_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 86); - -/** - * @generated from extension: repeated double packed_double_extension_lite = 101 [packed = true]; - */ -export const packed_double_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 87); - -/** - * @generated from extension: repeated bool packed_bool_extension_lite = 102 [packed = true]; - */ -export const packed_bool_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 88); - -/** - * @generated from extension: repeated protobuf_unittest.ForeignEnumLite packed_enum_extension_lite = 103 [packed = true]; - */ -export const packed_enum_extension_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 89); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite test_all_types_lite = 536860000; - */ -export const test_all_types_lite = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 90); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.d.ts index 1f388d9ec..b88a01312 100644 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.d.ts +++ b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.d.ts @@ -2781,6 +2781,11 @@ export declare type TestOneof2_NestedMessage = Message<"protobuf_unittest.TestOn * @generated from field: repeated int32 corge_int = 2; */ corgeInt: number[]; + + /** + * @generated from field: optional protobuf_unittest.TestOneof2.NestedMessage child = 3; + */ + child?: TestOneof2_NestedMessage; }; // Describes the message protobuf_unittest.TestOneof2.NestedMessage. Use `create(TestOneof2_NestedMessageDesc)` to create a new TestOneof2_NestedMessage. diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.js index ba1860d2b..cf99c9f9e 100644 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.js +++ b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_pb.js @@ -32,7 +32,7 @@ import { enumDesc, extDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@ import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; export const fileDesc_google_protobuf_unittest = /*@__PURE__*/ - fileDesc("Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0It4aCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSRAoNb3B0aW9uYWxncm91cBgQIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwEk4KF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJQChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWwogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICeAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSRAoNcmVwZWF0ZWRncm91cBguIAMoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwEk4KF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJQChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESGQoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDISGgoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NBIbCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3EhsKD2RlZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwEhsKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZRIdCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGQSTAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVISSQoUZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVISTQoTZGVmYXVsdF9pbXBvcnRfZW51bRhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSEiUKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJOgNhYmNCAggCEh0KDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIARIWCgxvbmVvZl91aW50MzIYbyABKA1IABJNChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0ZXMYciABKAxIABIYCgpvbmVvZl9jb3JkGHMgASgJQgIIAUgAEiAKEm9uZW9mX3N0cmluZ19waWVjZRh0IAEoCUICCAJIABJWChlvbmVvZl9sYXp5X25lc3RlZF9tZXNzYWdlGHUgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBRoaCg1PcHRpb25hbEdyb3VwEgkKAWEYESABKAUaGgoNUmVwZWF0ZWRHcm91cBIJCgFhGC8gASgFIjkKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQitAIKEk5lc3RlZFRlc3RBbGxUeXBlcxI0CgVjaGlsZBgBIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxIwCgdwYXlsb2FkGAIgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEj0KDnJlcGVhdGVkX2NoaWxkGAMgAygLMiUucHJvdG9idWZfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEj0KCmxhenlfY2hpbGQYBCABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXNCAigBEjgKC2VhZ2VyX2NoaWxkGAUgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzQgIoACKdAgoUVGVzdERlcHJlY2F0ZWRGaWVsZHMSHAoQZGVwcmVjYXRlZF9pbnQzMhgBIAEoBUICGAESJgoaZGVwcmVjYXRlZF9yZXBlYXRlZF9zdHJpbmcYBCADKAlCAhgBEk0KEmRlcHJlY2F0ZWRfbWVzc2FnZRgDIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIYARInChlkZXByZWNhdGVkX2ludDMyX2luX29uZW9mGAIgASgFQgIYAUgAEjcKBm5lc3RlZBgFIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REZXByZWNhdGVkRmllbGRzQg4KDG9uZW9mX2ZpZWxkcyIbChVUZXN0RGVwcmVjYXRlZE1lc3NhZ2U6AhgBIiYKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUSCQoBZBgCIAEoBSIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6Ih0KEVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiIkChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIJCgFhGBEgASgFIiQKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgkKAWEYLyABKAUivgEKHFRlc3RNaXhlZEZpZWxkc0FuZEV4dGVuc2lvbnMSCQoBYRgBIAEoBRIJCgFiGAMgAygHKgQIAhADKgQIBBAFMj0KAWMSLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWl4ZWRGaWVsZHNBbmRFeHRlbnNpb25zGAIgASgFUgFjMj0KAWQSLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWl4ZWRGaWVsZHNBbmRFeHRlbnNpb25zGAQgAygHUgFkIrUBCglUZXN0R3JvdXASQQoNb3B0aW9uYWxncm91cBgQIAEoCjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RHcm91cC5PcHRpb25hbEdyb3VwEj0KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtGiYKDU9wdGlvbmFsR3JvdXASCQoBYRgRIAEoBRIKCgJ6ehhZIAEoBSIeChJUZXN0R3JvdXBFeHRlbnNpb24qCAgBEICAgIACIosEChNUZXN0TmVzdGVkRXh0ZW5zaW9uGiQKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgkKAWEYESABKAUyPwoEdGVzdBIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOoHIAEoCToEdGVzdFIEdGVzdDJdChduZXN0ZWRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOsHIAEoCVIVbmVzdGVkU3RyaW5nRXh0ZW5zaW9uMp4BChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RHcm91cEV4dGVuc2lvbhgQIAEoCjI+LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRFeHRlbnNpb24uT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb24yjAEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0R3JvdXBFeHRlbnNpb24YFiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbiJsChJUZXN0Q2hpbGRFeHRlbnNpb24SCQoBYRgBIAEoCRIJCgFiGAIgASgJEkAKEm9wdGlvbmFsX2V4dGVuc2lvbhgDIAEoCzIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zItYCChZUZXN0Q2hpbGRFeHRlbnNpb25EYXRhEgkKAWEYASABKAkSCQoBYhgCIAEoCRJhChJvcHRpb25hbF9leHRlbnNpb24YAyABKAsyRS5wcm90b2J1Zl91bml0dGVzdC5UZXN0Q2hpbGRFeHRlbnNpb25EYXRhLk5lc3RlZFRlc3RBbGxFeHRlbnNpb25zRGF0YRrCAQobTmVzdGVkVGVzdEFsbEV4dGVuc2lvbnNEYXRhEnIKB2R5bmFtaWMYgMSuwwEgASgLMl0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdENoaWxkRXh0ZW5zaW9uRGF0YS5OZXN0ZWRUZXN0QWxsRXh0ZW5zaW9uc0RhdGEuTmVzdGVkRHluYW1pY0V4dGVuc2lvbnMaLwoXTmVzdGVkRHluYW1pY0V4dGVuc2lvbnMSCQoBYRgBIAEoBRIJCgFiGAIgASgFIlsKGFRlc3ROZXN0ZWRDaGlsZEV4dGVuc2lvbhIJCgFhGAEgASgFEjQKBWNoaWxkGAIgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdENoaWxkRXh0ZW5zaW9uImMKHFRlc3ROZXN0ZWRDaGlsZEV4dGVuc2lvbkRhdGESCQoBYRgBIAEoBRI4CgVjaGlsZBgCIAEoCzIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RDaGlsZEV4dGVuc2lvbkRhdGEiVAoQVGVzdFJlcXVpcmVkRW51bRI1Cg1yZXF1aXJlZF9lbnVtGAEgAigOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SCQoBYRgCIAEoBSKzAQoWVGVzdFJlcXVpcmVkRW51bU5vTWFzaxJLCg1yZXF1aXJlZF9lbnVtGAEgAigOMjQucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bU5vTWFzay5OZXN0ZWRFbnVtEgkKAWEYAiABKAUiQQoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxACEgcKA0JBUhBkEhAKA0JBWhD///////////8BIrMCChVUZXN0UmVxdWlyZWRFbnVtTXVsdGkSTAoPcmVxdWlyZWRfZW51bV80GAQgAigOMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bU11bHRpLk5lc3RlZEVudW0SCwoDYV8zGAMgASgFEkwKD3JlcXVpcmVkX2VudW1fMhgCIAIoDjIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZEVudW1NdWx0aS5OZXN0ZWRFbnVtEjcKD3JlcXVpcmVkX2VudW1fMRgBIAIoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtIjgKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQZCLEAwoXVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkSGwoTcmVxdWlyZWRfZml4ZWQzMl84MBhQIAIoBxIbChNyZXF1aXJlZF9maXhlZDMyXzcwGEYgAigHEk8KEHJlcXVpcmVkX2VudW1fNjQYQCACKA4yNS5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWROb01hc2tNdWx0aS5OZXN0ZWRFbnVtEk4KD3JlcXVpcmVkX2VudW1fNBgEIAIoDjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpLk5lc3RlZEVudW0SCwoDYV8zGAMgASgFEk4KD3JlcXVpcmVkX2VudW1fMhgCIAIoDjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpLk5lc3RlZEVudW0SNwoPcmVxdWlyZWRfZW51bV8xGAEgAigOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0iOAoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhBkIqEGCgxUZXN0UmVxdWlyZWQSCQoBYRgBIAIoBRIOCgZkdW1teTIYAiABKAUSCQoBYhgDIAIoBRIOCgZkdW1teTQYBCABKAUSDgoGZHVtbXk1GAUgASgFEg4KBmR1bW15NhgGIAEoBRIOCgZkdW1teTcYByABKAUSDgoGZHVtbXk4GAggASgFEg4KBmR1bW15ORgJIAEoBRIPCgdkdW1teTEwGAogASgFEg8KB2R1bW15MTEYCyABKAUSDwoHZHVtbXkxMhgMIAEoBRIPCgdkdW1teTEzGA0gASgFEg8KB2R1bW15MTQYDiABKAUSDwoHZHVtbXkxNRgPIAEoBRIPCgdkdW1teTE2GBAgASgFEg8KB2R1bW15MTcYESABKAUSDwoHZHVtbXkxOBgSIAEoBRIPCgdkdW1teTE5GBMgASgFEg8KB2R1bW15MjAYFCABKAUSDwoHZHVtbXkyMRgVIAEoBRIPCgdkdW1teTIyGBYgASgFEg8KB2R1bW15MjMYFyABKAUSDwoHZHVtbXkyNBgYIAEoBRIPCgdkdW1teTI1GBkgASgFEg8KB2R1bW15MjYYGiABKAUSDwoHZHVtbXkyNxgbIAEoBRIPCgdkdW1teTI4GBwgASgFEg8KB2R1bW15MjkYHSABKAUSDwoHZHVtbXkzMBgeIAEoBRIPCgdkdW1teTMxGB8gASgFEg8KB2R1bW15MzIYICABKAUSCQoBYxghIAIoBRI7ChBvcHRpb25hbF9mb3JlaWduGCIgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2UyXgoGc2luZ2xlEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6AcgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkUgZzaW5nbGUyXAoFbXVsdGkSJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxjpByADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRSBW11bHRpIuQBChNUZXN0UmVxdWlyZWRGb3JlaWduEjkKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQSOQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBINCgVkdW1teRgDIAEoBRJIChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYBCABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXNCAigBIsYBChNUZXN0UmVxdWlyZWRNZXNzYWdlEjkKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQSOQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBI5ChByZXF1aXJlZF9tZXNzYWdlGAMgAigLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkIrMDChlUZXN0TmVzdGVkUmVxdWlyZWRGb3JlaWduEjsKBWNoaWxkGAEgASgLMiwucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZFJlcXVpcmVkRm9yZWlnbhI3CgdwYXlsb2FkGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRm9yZWlnbhINCgVkdW1teRgDIAEoBRI6Cg1yZXF1aXJlZF9lbnVtGAUgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bRJIChVyZXF1aXJlZF9lbnVtX25vX21hc2sYBiABKAsyKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTm9NYXNrEkUKE3JlcXVpcmVkX2VudW1fbXVsdGkYByABKAsyKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTXVsdGkSRAoQcmVxdWlyZWRfbm9fbWFzaxgJIAEoCzIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpIloKEVRlc3RGb3JlaWduTmVzdGVkEkUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2UiEgoQVGVzdEVtcHR5TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgBEICAgIACIlkKF1Rlc3RQaWNrbGVOZXN0ZWRNZXNzYWdlGj4KDU5lc3RlZE1lc3NhZ2USCgoCYmIYASABKAUaIQoTTmVzdGVkTmVzdGVkTWVzc2FnZRIKCgJjYxgBIAEoBSI3ChtUZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5nZXMqBAgqECsqBgivIBCUISoKCICABBCAgICAAiI0ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISCQoBYRgBIAEoBRINCgJiYhj///9/IAEoBSJVChRUZXN0UmVjdXJzaXZlTWVzc2FnZRIyCgFhGAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USCQoBaRgCIAEoBSLmAwoUVGVzdE11dHVhbFJlY3Vyc2lvbkESMwoCYmIYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQhJCCghzdWJncm91cBgCIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Ykdyb3VwEkQKCXN1Ymdyb3VwchgFIAMoCjIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Ykdyb3VwUhpACgpTdWJNZXNzYWdlEjIKAWIYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQhqNAQoIU3ViR3JvdXASRwoLc3ViX21lc3NhZ2UYAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJNZXNzYWdlEjgKD25vdF9pbl90aGlzX3NjYxgEIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxo9CglTdWJHcm91cFISMAoHcGF5bG9hZBgGIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyJiChRUZXN0TXV0dWFsUmVjdXJzaW9uQhIyCgFhGAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVhbFJlY3Vyc2lvbkESFgoOb3B0aW9uYWxfaW50MzIYAiABKAUiygEKEVRlc3RJc0luaXRpYWxpemVkEkQKC3N1Yl9tZXNzYWdlGAEgASgLMi8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZRpvCgpTdWJNZXNzYWdlEkoKCHN1Ymdyb3VwGAEgASgKMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZS5TdWJHcm91cBoVCghTdWJHcm91cBIJCgFpGAIgAigFIrMBChJUZXN0RHVwRmllbGROdW1iZXISCQoBYRgBIAEoBRI2CgNmb28YAiABKAoyKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RHVwRmllbGROdW1iZXIuRm9vEjYKA2JhchgDIAEoCjIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REdXBGaWVsZE51bWJlci5CYXIaEAoDRm9vEgkKAWEYASABKAUaEAoDQmFyEgkKAWEYASABKAUiTAoQVGVzdEVhZ2VyTWVzc2FnZRI4CgtzdWJfbWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0ICKAAiSwoPVGVzdExhenlNZXNzYWdlEjgKC3N1Yl9tZXNzYWdlGAEgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzQgIoASJXChdUZXN0TGF6eU1lc3NhZ2VSZXBlYXRlZBI8ChByZXBlYXRlZF9tZXNzYWdlGAEgAygLMiIucHJvdG9idWZfdW5pdHRlc3QuVGVzdExhenlNZXNzYWdlIo8CChJUZXN0RWFnZXJNYXliZUxhenkSNAoLbWVzc2FnZV9mb28YASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSNAoLbWVzc2FnZV9iYXIYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSSAoLbWVzc2FnZV9iYXoYAyABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RWFnZXJNYXliZUxhenkuTmVzdGVkTWVzc2FnZRpDCg1OZXN0ZWRNZXNzYWdlEjIKBnBhY2tlZBgBIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRUeXBlcyKAAgoYVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzEloKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGAEgASgLMjkucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzLk5lc3RlZE1lc3NhZ2UahwEKDU5lc3RlZE1lc3NhZ2USJAocbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9pbnQzMhgBIAMoBRJQCiVuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ZvcmVpZ25tZXNzYWdlGAIgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2Ui5QMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEhYKDlByaW1pdGl2ZUZpZWxkGAEgASgFEhMKC1N0cmluZ0ZpZWxkGAIgASgJEjEKCUVudW1GaWVsZBgDIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEjcKDE1lc3NhZ2VGaWVsZBgEIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEhwKEFN0cmluZ1BpZWNlRmllbGQYBSABKAlCAggCEhUKCUNvcmRGaWVsZBgGIAEoCUICCAESHgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBRIbChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJEjkKEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SPwoUUmVwZWF0ZWRNZXNzYWdlRmllbGQYCiADKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRIkChhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQYCyADKAlCAggCEh0KEVJlcGVhdGVkQ29yZEZpZWxkGAwgAygJQgIIASLVAQoSVGVzdEZpZWxkT3JkZXJpbmdzEhEKCW15X3N0cmluZxgLIAEoCRIOCgZteV9pbnQYASABKAMSEAoIbXlfZmxvYXQYZSABKAISVQoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzLk5lc3RlZE1lc3NhZ2UaJwoNTmVzdGVkTWVzc2FnZRIKCgJvbxgCIAEoAxIKCgJiYhgBIAEoBSoECAIQCyoECAwQZSKwAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczESEQoJbXlfc3RyaW5nGAEgASgJMoEBChN0ZXN0X2V4dF9vcmRlcmluZ3MxEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGA0gASgLMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczFSEXRlc3RFeHRPcmRlcmluZ3MxIvsCChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMhIRCglteV9zdHJpbmcYASABKAkayAEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MzEhEKCW15X3N0cmluZxgBIAEoCTKZAQoTdGVzdF9leHRfb3JkZXJpbmdzMxIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgOIAEoCzJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MzUhF0ZXN0RXh0T3JkZXJpbmdzMzKBAQoTdGVzdF9leHRfb3JkZXJpbmdzMhIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgMIAEoCzIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyUhF0ZXN0RXh0T3JkZXJpbmdzMiK2BwoYVGVzdEV4dHJlbWVEZWZhdWx0VmFsdWVzEj8KDWVzY2FwZWRfYnl0ZXMYASABKAw6KFwwMDBcMDAxXDAwN1wwMTBcMDE0XG5cclx0XDAxM1xcXCdcIlwzNzYSIAoMbGFyZ2VfdWludDMyGAIgASgNOgo0Mjk0OTY3Mjk1EioKDGxhcmdlX3VpbnQ2NBgDIAEoBDoUMTg0NDY3NDQwNzM3MDk1NTE2MTUSIAoLc21hbGxfaW50MzIYBCABKAU6Cy0yMTQ3NDgzNjQ3EikKC3NtYWxsX2ludDY0GAUgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwNxInChJyZWFsbHlfc21hbGxfaW50MzIYFSABKAU6Cy0yMTQ3NDgzNjQ4EjAKEnJlYWxseV9zbWFsbF9pbnQ2NBgWIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDgSGAoLdXRmOF9zdHJpbmcYBiABKAk6A+GItBIVCgp6ZXJvX2Zsb2F0GAcgASgCOgEwEhQKCW9uZV9mbG9hdBgIIAEoAjoBMRIYCgtzbWFsbF9mbG9hdBgJIAEoAjoDMS41Eh4KEm5lZ2F0aXZlX29uZV9mbG9hdBgKIAEoAjoCLTESHAoObmVnYXRpdmVfZmxvYXQYCyABKAI6BC0xLjUSGgoLbGFyZ2VfZmxvYXQYDCABKAI6BTJlKzA4EiQKFHNtYWxsX25lZ2F0aXZlX2Zsb2F0GA0gASgCOgYtOGUtMjgSFwoKaW5mX2RvdWJsZRgOIAEoAToDaW5mEhwKDm5lZ19pbmZfZG91YmxlGA8gASgBOgQtaW5mEhcKCm5hbl9kb3VibGUYECABKAE6A25hbhIWCglpbmZfZmxvYXQYESABKAI6A2luZhIbCg1uZWdfaW5mX2Zsb2F0GBIgASgCOgQtaW5mEhYKCW5hbl9mbG9hdBgTIAEoAjoDbmFuEisKDGNwcF90cmlncmFwaBgUIAEoCToVPyA/ID8/ID8/ID8/PyA/Py8gPz8tEiAKEHN0cmluZ193aXRoX3plcm8YFyABKAk6BmhlbABsbxIiCg9ieXRlc193aXRoX3plcm8YGCABKAw6CXdvclwwMDBsZBIoChZzdHJpbmdfcGllY2Vfd2l0aF96ZXJvGBkgASgJOgRhYgBjQgIIAhIgCg5jb3JkX3dpdGhfemVybxgaIAEoCToEMTIAM0ICCAESJgoScmVwbGFjZW1lbnRfc3RyaW5nGBsgASgJOgoke3Vua25vd259IksKEVNwYXJzZUVudW1NZXNzYWdlEjYKC3NwYXJzZV9lbnVtGAEgASgOMiEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFNwYXJzZUVudW0iGQoJT25lU3RyaW5nEgwKBGRhdGEYASABKAkiGgoKTW9yZVN0cmluZxIMCgRkYXRhGAEgAygJIhgKCE9uZUJ5dGVzEgwKBGRhdGEYASABKAwiGQoJTW9yZUJ5dGVzEgwKBGRhdGEYASADKAwi6wMKEk1hbnlPcHRpb25hbFN0cmluZxIMCgRzdHIxGAEgASgJEgwKBHN0cjIYAiABKAkSDAoEc3RyMxgDIAEoCRIMCgRzdHI0GAQgASgJEgwKBHN0cjUYBSABKAkSDAoEc3RyNhgGIAEoCRIMCgRzdHI3GAcgASgJEgwKBHN0cjgYCCABKAkSDAoEc3RyORgJIAEoCRINCgVzdHIxMBgKIAEoCRINCgVzdHIxMRgLIAEoCRINCgVzdHIxMhgMIAEoCRINCgVzdHIxMxgNIAEoCRINCgVzdHIxNBgOIAEoCRINCgVzdHIxNRgPIAEoCRINCgVzdHIxNhgQIAEoCRINCgVzdHIxNxgRIAEoCRINCgVzdHIxOBgSIAEoCRINCgVzdHIxORgTIAEoCRINCgVzdHIyMBgUIAEoCRINCgVzdHIyMRgVIAEoCRINCgVzdHIyMhgWIAEoCRINCgVzdHIyMxgXIAEoCRINCgVzdHIyNBgYIAEoCRINCgVzdHIyNRgZIAEoCRINCgVzdHIyNhgaIAEoCRINCgVzdHIyNxgbIAEoCRINCgVzdHIyOBgcIAEoCRINCgVzdHIyORgdIAEoCRINCgVzdHIzMBgeIAEoCRINCgVzdHIzMRgfIAEoCRINCgVzdHIzMhggIAEoCSIcCgxJbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoBSIdCg1VaW50MzJNZXNzYWdlEgwKBGRhdGEYASABKA0iHAoMSW50NjRNZXNzYWdlEgwKBGRhdGEYASABKAMiHQoNVWludDY0TWVzc2FnZRIMCgRkYXRhGAEgASgEIhsKC0Jvb2xNZXNzYWdlEgwKBGRhdGEYASABKAgi0AEKCVRlc3RPbmVvZhIRCgdmb29faW50GAEgASgFSAASFAoKZm9vX3N0cmluZxgCIAEoCUgAEjYKC2Zvb19tZXNzYWdlGAMgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzSAASOQoIZm9vZ3JvdXAYBCABKAoyJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0T25lb2YuRm9vR3JvdXBIABogCghGb29Hcm91cBIJCgFhGAUgASgFEgkKAWIYBiABKAlCBQoDZm9vIucBChxUZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlEg8KB2Zvb19pbnQYASABKAUSEgoKZm9vX3N0cmluZxgCIAEoCRI0Cgtmb29fbWVzc2FnZRgDIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJKCghmb29ncm91cBgEIAEoCjI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUuRm9vR3JvdXAaIAoIRm9vR3JvdXASCQoBYRgFIAEoBRIJCgFiGAYgASgJIvMHCgpUZXN0T25lb2YyEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASFgoIZm9vX2NvcmQYAyABKAlCAggBSAASHgoQZm9vX3N0cmluZ19waWVjZRgEIAEoCUICCAJIABITCglmb29fYnl0ZXMYBSABKAxIABI8Cghmb29fZW51bRgGIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkRW51bUgAEkIKC2Zvb19tZXNzYWdlGAcgASgLMisucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlSAASOgoIZm9vZ3JvdXAYCCABKAoyJi5wcm90b2J1Zl91bml0dGVzdC5UZXN0T25lb2YyLkZvb0dyb3VwSAASSwoQZm9vX2xhenlfbWVzc2FnZRgLIAEoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUICKAFIABIcCg5mb29fYnl0ZXNfY29yZBgeIAEoDEICCAFIABIUCgdiYXJfaW50GAwgASgFOgE1SAESHAoKYmFyX3N0cmluZxgNIAEoCToGU1RSSU5HSAESHAoIYmFyX2NvcmQYDiABKAk6BENPUkRCAggBSAESJgoQYmFyX3N0cmluZ19waWVjZRgPIAEoCToGU1BJRUNFQgIIAkgBEhoKCWJhcl9ieXRlcxgQIAEoDDoFQllURVNIARJBCghiYXJfZW51bRgRIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkRW51bToDQkFSSAESKQodYmFyX3N0cmluZ193aXRoX2VtcHR5X2RlZmF1bHQYFCABKAk6AEgBEisKG2Jhcl9jb3JkX3dpdGhfZW1wdHlfZGVmYXVsdBgVIAEoCToAQgIIAUgBEjMKI2Jhcl9zdHJpbmdfcGllY2Vfd2l0aF9lbXB0eV9kZWZhdWx0GBYgASgJOgBCAggCSAESKAocYmFyX2J5dGVzX3dpdGhfZW1wdHlfZGVmYXVsdBgXIAEoDDoASAESDwoHYmF6X2ludBgSIAEoBRIXCgpiYXpfc3RyaW5nGBMgASgJOgNCQVoaIAoIRm9vR3JvdXASCQoBYRgJIAEoBRIJCgFiGAogASgJGjMKDU5lc3RlZE1lc3NhZ2USDwoHbW9vX2ludBgBIAEoAxIRCgljb3JnZV9pbnQYAiADKAUiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQA0IFCgNmb29CBQoDYmFyIowCChFUZXN0UmVxdWlyZWRPbmVvZhIRCgdmb29faW50GAEgASgFSAASFAoKZm9vX3N0cmluZxgCIAEoCUgAEkkKC2Zvb19tZXNzYWdlGAMgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkT25lb2YuTmVzdGVkTWVzc2FnZUgAElIKEGZvb19sYXp5X21lc3NhZ2UYBCABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlQgIoAUgAGigKDU5lc3RlZE1lc3NhZ2USFwoPcmVxdWlyZWRfZG91YmxlGAEgAigBQgUKA2ZvbyKqAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI3CgtwYWNrZWRfZW51bRhnIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLIAwoRVGVzdFVucGFja2VkVHlwZXMSGgoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAEhoKDnVucGFja2VkX2ludDY0GFsgAygDQgIQABIbCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAEhsKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEAASGwoPdW5wYWNrZWRfc2ludDMyGF4gAygRQgIQABIbCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAEhwKEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAEhwKEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAEh0KEXVucGFja2VkX3NmaXhlZDMyGGIgAygPQgIQABIdChF1bnBhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAASGgoOdW5wYWNrZWRfZmxvYXQYZCADKAJCAhAAEhsKD3VucGFja2VkX2RvdWJsZRhlIAMoAUICEAASGQoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEAASOQoNdW5wYWNrZWRfZW51bRhnIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQACIgChRUZXN0UGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIiIgoWVGVzdFVucGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIimQQKFVRlc3REeW5hbWljRXh0ZW5zaW9ucxIZChBzY2FsYXJfZXh0ZW5zaW9uGNAPIAEoBxI3Cg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRJZChZkeW5hbWljX2VudW1fZXh0ZW5zaW9uGNIPIAEoDjI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljRW51bVR5cGUSPQoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USXwoZZHluYW1pY19tZXNzYWdlX2V4dGVuc2lvbhjUDyABKAsyOy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VUeXBlEhsKEnJlcGVhdGVkX2V4dGVuc2lvbhjVDyADKAkSHQoQcGFja2VkX2V4dGVuc2lvbhjWDyADKBFCAhABGiwKEkR5bmFtaWNNZXNzYWdlVHlwZRIWCg1keW5hbWljX2ZpZWxkGLQQIAEoBSJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlOQU1JQ19GT08QmBESEAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQmhEifAoSVGVzdFJlcGVhdGVkU3RyaW5nEhgKEHJlcGVhdGVkX3N0cmluZzEYASADKAkSGAoQcmVwZWF0ZWRfc3RyaW5nMhgCIAMoCRIYChByZXBlYXRlZF9ieXRlczExGAsgAygMEhgKEHJlcGVhdGVkX2J5dGVzMTIYDCADKAwiwAEKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEhgKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRfaW50MzIYDSADKAUSGQoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVwZWF0ZWRfaW50NjQY/w8gAygDEhgKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAISGQoPcmVwZWF0ZWRfdWludDY0GP//DyADKAQikQoKEFRlc3RQYXJzaW5nTWVyZ2USOwoScmVxdWlyZWRfYWxsX3R5cGVzGAEgAigLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgCIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYAyADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSSAoNb3B0aW9uYWxncm91cBgKIAEoCjIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuT3B0aW9uYWxHcm91cBJICg1yZXBlYXRlZGdyb3VwGBQgAygKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEdyb3VwGqoEChdSZXBlYXRlZEZpZWxkc0dlbmVyYXRvchIvCgZmaWVsZDEYASADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSLwoGZmllbGQyGAIgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEi8KBmZpZWxkMxgDIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJSCgZncm91cDEYCiADKAoyQi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMRJSCgZncm91cDIYFCADKAoyQi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMhIuCgRleHQxGOgHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxIuCgRleHQyGOkHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxo5CgZHcm91cDESLwoGZmllbGQxGAsgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGjkKBkdyb3VwMhIvCgZmaWVsZDEYFSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMaUgoNT3B0aW9uYWxHcm91cBJBChhvcHRpb25hbF9ncm91cF9hbGxfdHlwZXMYCyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMaUgoNUmVwZWF0ZWRHcm91cBJBChhyZXBlYXRlZF9ncm91cF9hbGxfdHlwZXMYFSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMqCQjoBxCAgICAAjJoCgxvcHRpb25hbF9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlGOgHIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc1ILb3B0aW9uYWxFeHQyaAoMcmVwZWF0ZWRfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZRjpByADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNSC3JlcGVhdGVkRXh0IlIKElRlc3RNZXJnZUV4Y2VwdGlvbhI8Cg5hbGxfZXh0ZW5zaW9ucxgBIAEoCzIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zIkQKG1Rlc3RDb21tZW50SW5qZWN0aW9uTWVzc2FnZRIlCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0aGlzLiJZCg9UZXN0TWVzc2FnZVNpemUSCgoCbTEYASABKAgSCgoCbTIYAiABKAMSCgoCbTMYAyABKAgSCgoCbTQYBCABKAkSCgoCbTUYBSABKAUSCgoCbTYYBiABKAMiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSKmAQoMVGVzdEpzb25OYW1lEhMKC2ZpZWxkX25hbWUxGAEgASgFEhIKCmZpZWxkTmFtZTIYAiABKAUSEgoKRmllbGROYW1lMxgDIAEoBRIUCgxfZmllbGRfbmFtZTQYBCABKAUSEwoLRklFTERfTkFNRTUYBSABKAUSGgoLZmllbGRfbmFtZTYYBiABKAVSBUB0eXBlEhIKCmZpZWxkbmFtZTcYByABKAUi/QUKFFRlc3RIdWdlRmllbGROdW1iZXJzEhoKDm9wdGlvbmFsX2ludDMyGPD4//8BIAEoBRIUCghmaXhlZF8zMhjx+P//ASABKAUSHgoOcmVwZWF0ZWRfaW50MzIY8vj//wEgAygFQgIQABIcCgxwYWNrZWRfaW50MzIY8/j//wEgAygFQgIQARI5Cg1vcHRpb25hbF9lbnVtGPT4//8BIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEhsKD29wdGlvbmFsX3N0cmluZxj1+P//ASABKAkSGgoOb3B0aW9uYWxfYnl0ZXMY9vj//wEgASgMEj8KEG9wdGlvbmFsX21lc3NhZ2UY9/j//wEgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USUAoNb3B0aW9uYWxncm91cBj4+P//ASABKAoyNS5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVycy5PcHRpb25hbEdyb3VwElsKEXN0cmluZ19zdHJpbmdfbWFwGPr4//8BIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RIdWdlRmllbGROdW1iZXJzLlN0cmluZ1N0cmluZ01hcEVudHJ5EhoKDG9uZW9mX3VpbnQzMhj7+P//ASABKA1IABJDChRvbmVvZl90ZXN0X2FsbF90eXBlcxj8+P//ASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNIABIaCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSAASGQoLb25lb2ZfYnl0ZXMY/vj//wEgASgMSAAaJAoNT3B0aW9uYWxHcm91cBITCgdncm91cF9hGPn4//8BIAEoBRo2ChRTdHJpbmdTdHJpbmdNYXBFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQisQEKGFRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRIOCgZmaWVsZDEYASABKAUSDgoGZmllbGQyGAIgASgFEg4KBmZpZWxkMxgDIAEoBRIOCgZmaWVsZDQYBCABKAUSDgoGZmllbGQ2GAYgASgFEg4KBmZpZWxkNxgHIAEoBRIOCgZmaWVsZDgYCCABKAUSDgoGZmllbGQ5GAkgASgFEg8KB2ZpZWxkMTAYCiABKAUqBAgFEAYilgQKHVRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyEmEKE2xheWVyMW9wdGlvbmFsZ3JvdXAYASABKAoyRC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwGpEDChNMYXllcjFPcHRpb25hbEdyb3VwEnUKE2xheWVyMnJlcGVhdGVkZ3JvdXAYAiADKAoyWC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwLkxheWVyMlJlcGVhdGVkR3JvdXASkwEKImxheWVyMmFub3RoZXJvcHRpb25hbHJlcGVhdGVkZ3JvdXAYBCADKAoyZy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwLkxheWVyMkFub3RoZXJPcHRpb25hbFJlcGVhdGVkR3JvdXAaMgoTTGF5ZXIyUmVwZWF0ZWRHcm91cBIVCg1hbm90aGVyX2ZpZWxkGAYgASgJKgQIAxAEGjkKIkxheWVyMkFub3RoZXJPcHRpb25hbFJlcGVhdGVkR3JvdXASEwoLYnV0X3doeV90aG8YBSABKAkiPAomVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uSW5uZXJFeHRlbnNpb24SEgoKaW5uZXJfbmFtZRgBIAEoCSL9AwobVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplEg8KB2Zvb19vbmUYASABKAUSDwoHZm9vX3R3bxgGIAEoBRIRCglmb29fdGhyZWUYByABKAUSEAoIZm9vX2ZvdXIYDSABKAUqBAgCEAMqBAgDEAUqBAgJEAsqBAgPEBAqBAgREBIqBAgTEBQyRwoHYmFyX29uZRIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25SYW5nZVNlcmlhbGl6ZRgCIAEoBVIGYmFyT25lMkcKB2Jhcl90d28SLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYBCABKAVSBmJhclR3bzJLCgliYXJfdGhyZWUSLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYCiABKAVSCGJhclRocmVlMkkKCGJhcl9mb3VyEi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplGA8gASgFUgdiYXJGb3VyMkkKCGJhcl9maXZlEi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplGBMgASgFUgdiYXJGaXZlIoEBChVUZXN0VmVyaWZ5SW50MzJTaW1wbGUSGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFIvUBCg9UZXN0VmVyaWZ5SW50MzISGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMiygIKFVRlc3RWZXJpZnlNb3N0bHlJbnQzMhIZChFvcHRpb25hbF9pbnQ2NF8zMBgeIAEoAxIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGAoQb3B0aW9uYWxfaW50MzJfMxgDIAEoBRIYChBvcHRpb25hbF9pbnQzMl80GAQgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMi9QIKI1Rlc3RWZXJpZnlNb3N0bHlJbnQzMkJpZ0ZpZWxkTnVtYmVyEhkKEW9wdGlvbmFsX2ludDY0XzMwGB4gASgDEhsKEm9wdGlvbmFsX2ludDMyXzMwMBisAiABKAUSGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhgKEG9wdGlvbmFsX2ludDMyXzMYAyABKAUSGAoQb3B0aW9uYWxfaW50MzJfNBgEIAEoBRIZChFvcHRpb25hbF9pbnQzMl82Mxg/IAEoBRIZChFvcHRpb25hbF9pbnQzMl82NBhAIAEoBRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIoYBChZUZXN0VmVyaWZ5VWludDMyU2ltcGxlEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8yGAIgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82Mxg/IAEoDRIaChJvcHRpb25hbF91aW50MzJfNjQYQCABKA0i+gEKEFRlc3RWZXJpZnlVaW50MzISGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGQoRb3B0aW9uYWxfdWludDMyXzIYAiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzYzGD8gASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NBhAIAEoDRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIvoBChNUZXN0VmVyaWZ5T25lVWludDMyEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyKhAgogVGVzdFZlcmlmeU9uZUludDMyQmlnRmllbGROdW1iZXISGQoRb3B0aW9uYWxfaW50MzJfNjUYQSABKAUSGAoQb3B0aW9uYWxfaW50NjRfMRgBIAEoAxIYChBvcHRpb25hbF9pbnQ2NF8yGAIgASgDEhkKEW9wdGlvbmFsX2ludDY0XzYzGD8gASgDEhkKEW9wdGlvbmFsX2ludDY0XzY0GEAgASgDEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMivAIKHVRlc3RWZXJpZnlJbnQzMkJpZ0ZpZWxkTnVtYmVyEhwKE29wdGlvbmFsX2ludDMyXzEwMDAY6AcgASgFEhkKEW9wdGlvbmFsX2ludDMyXzY1GEEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzEYASABKAUSGAoQb3B0aW9uYWxfaW50MzJfMhgCIAEoBRIZChFvcHRpb25hbF9pbnQzMl82Mxg/IAEoBRIZChFvcHRpb25hbF9pbnQzMl82NBhAIAEoBRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIsMCCh5UZXN0VmVyaWZ5VWludDMyQmlnRmllbGROdW1iZXISHQoUb3B0aW9uYWxfdWludDMyXzEwMDAY6AcgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NRhBIAEoDRIZChFvcHRpb25hbF91aW50MzJfMRgBIAEoDRIZChFvcHRpb25hbF91aW50MzJfMhgCIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjMYPyABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY0GEAgASgNEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMiiAQKHlRlc3RWZXJpZnlCaWdGaWVsZE51bWJlclVpbnQzMhJRCg9vcHRpb25hbF9uZXN0ZWQYASABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0VmVyaWZ5QmlnRmllbGROdW1iZXJVaW50MzIuTmVzdGVkGpIDCgZOZXN0ZWQSHQoUb3B0aW9uYWxfdWludDMyXzUwMDAYiCcgASgNEh0KFG9wdGlvbmFsX3VpbnQzMl8xMDAwGOgHIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjYYQiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY1GEEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8yGAIgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82Mxg/IAEoDRIaChJvcHRpb25hbF91aW50MzJfNjQYQCABKA0SUQoPb3B0aW9uYWxfbmVzdGVkGAkgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdFZlcmlmeUJpZ0ZpZWxkTnVtYmVyVWludDMyLk5lc3RlZBJRCg9yZXBlYXRlZF9uZXN0ZWQYCiADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0VmVyaWZ5QmlnRmllbGROdW1iZXJVaW50MzIuTmVzdGVkIokjCg9FbnVtUGFyc2VUZXN0ZXISUwodb3B0aW9uYWxfc2VxX3NtYWxsXzBfbG93ZmllbGQYASABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElQKHW9wdGlvbmFsX3NlcV9zbWFsbF8wX21pZGZpZWxkGOkHIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVAocb3B0aW9uYWxfc2VxX3NtYWxsXzBfaGlmaWVsZBjBhD0gASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJTCh1yZXBlYXRlZF9zZXFfc21hbGxfMF9sb3dmaWVsZBgCIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVAodcmVwZWF0ZWRfc2VxX3NtYWxsXzBfbWlkZmllbGQY6gcgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJUChxyZXBlYXRlZF9zZXFfc21hbGxfMF9oaWZpZWxkGMKEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElUKG3BhY2tlZF9zZXFfc21hbGxfMF9sb3dmaWVsZBgDIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDBCAhABElYKG3BhY2tlZF9zZXFfc21hbGxfMF9taWRmaWVsZBjrByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwQgIQARJWChpwYWNrZWRfc2VxX3NtYWxsXzBfaGlmaWVsZBjDhD0gAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMEICEAESUwodb3B0aW9uYWxfc2VxX3NtYWxsXzFfbG93ZmllbGQYBCABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElQKHW9wdGlvbmFsX3NlcV9zbWFsbF8xX21pZGZpZWxkGOwHIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVAocb3B0aW9uYWxfc2VxX3NtYWxsXzFfaGlmaWVsZBjEhD0gASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJTCh1yZXBlYXRlZF9zZXFfc21hbGxfMV9sb3dmaWVsZBgFIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVAodcmVwZWF0ZWRfc2VxX3NtYWxsXzFfbWlkZmllbGQY7QcgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJUChxyZXBlYXRlZF9zZXFfc21hbGxfMV9oaWZpZWxkGMWEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElUKG3BhY2tlZF9zZXFfc21hbGxfMV9sb3dmaWVsZBgGIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDFCAhABElYKG3BhY2tlZF9zZXFfc21hbGxfMV9taWRmaWVsZBjuByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxQgIQARJWChpwYWNrZWRfc2VxX3NtYWxsXzFfaGlmaWVsZBjGhD0gAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMUICEAESUAobb3B0aW9uYWxfc2VxX2xhcmdlX2xvd2ZpZWxkGAcgASgOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElEKG29wdGlvbmFsX3NlcV9sYXJnZV9taWRmaWVsZBjvByABKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUQoab3B0aW9uYWxfc2VxX2xhcmdlX2hpZmllbGQYx4Q9IAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJQChtyZXBlYXRlZF9zZXFfbGFyZ2VfbG93ZmllbGQYCCADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUQobcmVwZWF0ZWRfc2VxX2xhcmdlX21pZGZpZWxkGPAHIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJRChpyZXBlYXRlZF9zZXFfbGFyZ2VfaGlmaWVsZBjIhD0gAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElIKGXBhY2tlZF9zZXFfbGFyZ2VfbG93ZmllbGQYCSADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2VCAhABElMKGXBhY2tlZF9zZXFfbGFyZ2VfbWlkZmllbGQY8QcgAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlQgIQARJTChhwYWNrZWRfc2VxX2xhcmdlX2hpZmllbGQYyYQ9IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZUICEAESUQobb3B0aW9uYWxfYXJiaXRyYXJ5X2xvd2ZpZWxkGAogASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeRJSChtvcHRpb25hbF9hcmJpdHJhcnlfbWlkZmllbGQY8gcgASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeRJSChpvcHRpb25hbF9hcmJpdHJhcnlfaGlmaWVsZBjKhD0gASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeRJRChtyZXBlYXRlZF9hcmJpdHJhcnlfbG93ZmllbGQYCyADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKG3JlcGVhdGVkX2FyYml0cmFyeV9taWRmaWVsZBjzByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKGnJlcGVhdGVkX2FyYml0cmFyeV9oaWZpZWxkGMuEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElMKGXBhY2tlZF9hcmJpdHJhcnlfbG93ZmllbGQYDCADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5QgIQARJUChlwYWNrZWRfYXJiaXRyYXJ5X21pZGZpZWxkGPQHIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnlCAhABElQKGHBhY2tlZF9hcmJpdHJhcnlfaGlmaWVsZBjMhD0gAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeUICEAESEwoLb3RoZXJfZmllbGQYYyABKAUiSgoJU2VxU21hbGwwEhcKE1NFUV9TTUFMTF8wX0RFRkFVTFQQABIRCg1TRVFfU01BTExfMF8xEAESEQoNU0VRX1NNQUxMXzBfMhACIkoKCVNlcVNtYWxsMRIXChNTRVFfU01BTExfMV9ERUZBVUxUEAESEQoNU0VRX1NNQUxMXzFfMhACEhEKDVNFUV9TTUFMTF8xXzMQAyKEBQoIU2VxTGFyZ2USHgoRU0VRX0xBUkdFX0RFRkFVTFQQ////////////ARIPCgtTRVFfTEFSR0VfMBAAEg8KC1NFUV9MQVJHRV8xEAESDwoLU0VRX0xBUkdFXzIQAhIPCgtTRVFfTEFSR0VfMxADEg8KC1NFUV9MQVJHRV80EAQSDwoLU0VRX0xBUkdFXzUQBRIPCgtTRVFfTEFSR0VfNhAGEg8KC1NFUV9MQVJHRV83EAcSDwoLU0VRX0xBUkdFXzgQCBIPCgtTRVFfTEFSR0VfORAJEhAKDFNFUV9MQVJHRV8xMBAKEhAKDFNFUV9MQVJHRV8xMRALEhAKDFNFUV9MQVJHRV8xMhAMEhAKDFNFUV9MQVJHRV8xMxANEhAKDFNFUV9MQVJHRV8xNBAOEhAKDFNFUV9MQVJHRV8xNRAPEhAKDFNFUV9MQVJHRV8xNhAQEhAKDFNFUV9MQVJHRV8xNxAREhAKDFNFUV9MQVJHRV8xOBASEhAKDFNFUV9MQVJHRV8xORATEhAKDFNFUV9MQVJHRV8yMBAUEhAKDFNFUV9MQVJHRV8yMRAVEhAKDFNFUV9MQVJHRV8yMhAWEhAKDFNFUV9MQVJHRV8yMxAXEhAKDFNFUV9MQVJHRV8yNBAYEhAKDFNFUV9MQVJHRV8yNRAZEhAKDFNFUV9MQVJHRV8yNhAaEhAKDFNFUV9MQVJHRV8yNxAbEhAKDFNFUV9MQVJHRV8yOBAcEhAKDFNFUV9MQVJHRV8yORAdEhAKDFNFUV9MQVJHRV8zMBAeEhAKDFNFUV9MQVJHRV8zMRAfEhAKDFNFUV9MQVJHRV8zMhAgEhAKDFNFUV9MQVJHRV8zMxAhIp0BCglBcmJpdHJhcnkSHgoRQVJCSVRSQVJZX0RFRkFVTFQQjb74////////ARIYCgtBUkJJVFJBUllfMRCF//////////8BEhAKC0FSQklUUkFSWV8yENUBEhEKC0FSQklUUkFSWV8zEN2BDRIaCg1BUkJJVFJBUllfTUlOEICAgID4/////wESFQoNQVJCSVRSQVJZX01BWBD/////ByoKCICJehCAgICAAjKIAQoWb3B0aW9uYWxfYXJiaXRyYXJ5X2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3RlchiAiXogASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeVIUb3B0aW9uYWxBcmJpdHJhcnlFeHQyiAEKFnJlcGVhdGVkX2FyYml0cmFyeV9leHQSIi5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIYgYl6IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnlSFHJlcGVhdGVkQXJiaXRyYXJ5RXh0MogBChRwYWNrZWRfYXJiaXRyYXJ5X2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3RlchiCiXogAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeUICEAFSEnBhY2tlZEFyYml0cmFyeUV4dCLUBAoPQm9vbFBhcnNlVGVzdGVyEh4KFm9wdGlvbmFsX2Jvb2xfbG93ZmllbGQYASABKAgSHwoWb3B0aW9uYWxfYm9vbF9taWRmaWVsZBjpByABKAgSHwoVb3B0aW9uYWxfYm9vbF9oaWZpZWxkGMGEPSABKAgSHgoWcmVwZWF0ZWRfYm9vbF9sb3dmaWVsZBgCIAMoCBIfChZyZXBlYXRlZF9ib29sX21pZGZpZWxkGOoHIAMoCBIfChVyZXBlYXRlZF9ib29sX2hpZmllbGQYwoQ9IAMoCBIgChRwYWNrZWRfYm9vbF9sb3dmaWVsZBgDIAMoCEICEAESIQoUcGFja2VkX2Jvb2xfbWlkZmllbGQY6wcgAygIQgIQARIhChNwYWNrZWRfYm9vbF9oaWZpZWxkGMOEPSADKAhCAhABEhMKC290aGVyX2ZpZWxkGGMgASgFKgoIgIl6EICAgIACMlAKEW9wdGlvbmFsX2Jvb2xfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuQm9vbFBhcnNlVGVzdGVyGICJeiABKAhSD29wdGlvbmFsQm9vbEV4dDJQChFyZXBlYXRlZF9ib29sX2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkJvb2xQYXJzZVRlc3RlchiBiXogAygIUg9yZXBlYXRlZEJvb2xFeHQyUAoPcGFja2VkX2Jvb2xfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuQm9vbFBhcnNlVGVzdGVyGIKJeiADKAhCAhABUg1wYWNrZWRCb29sRXh0IucEChBJbnQzMlBhcnNlVGVzdGVyEh8KF29wdGlvbmFsX2ludDMyX2xvd2ZpZWxkGAEgASgFEiAKF29wdGlvbmFsX2ludDMyX21pZGZpZWxkGOkHIAEoBRIgChZvcHRpb25hbF9pbnQzMl9oaWZpZWxkGMGEPSABKAUSHwoXcmVwZWF0ZWRfaW50MzJfbG93ZmllbGQYAiADKAUSIAoXcmVwZWF0ZWRfaW50MzJfbWlkZmllbGQY6gcgAygFEiAKFnJlcGVhdGVkX2ludDMyX2hpZmllbGQYwoQ9IAMoBRIhChVwYWNrZWRfaW50MzJfbG93ZmllbGQYAyADKAVCAhABEiIKFXBhY2tlZF9pbnQzMl9taWRmaWVsZBjrByADKAVCAhABEiIKFHBhY2tlZF9pbnQzMl9oaWZpZWxkGMOEPSADKAVCAhABEhMKC290aGVyX2ZpZWxkGGMgASgFKgoIgIl6EICAgIACMlMKEm9wdGlvbmFsX2ludDMyX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDMyUGFyc2VUZXN0ZXIYgIl6IAEoBVIQb3B0aW9uYWxJbnQzMkV4dDJTChJyZXBlYXRlZF9pbnQzMl9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5JbnQzMlBhcnNlVGVzdGVyGIGJeiADKAVSEHJlcGVhdGVkSW50MzJFeHQyUwoQcGFja2VkX2ludDMyX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDMyUGFyc2VUZXN0ZXIYgol6IAMoBUICEAFSDnBhY2tlZEludDMyRXh0IucEChBJbnQ2NFBhcnNlVGVzdGVyEh8KF29wdGlvbmFsX2ludDY0X2xvd2ZpZWxkGAEgASgDEiAKF29wdGlvbmFsX2ludDY0X21pZGZpZWxkGOkHIAEoAxIgChZvcHRpb25hbF9pbnQ2NF9oaWZpZWxkGMGEPSABKAMSHwoXcmVwZWF0ZWRfaW50NjRfbG93ZmllbGQYAiADKAMSIAoXcmVwZWF0ZWRfaW50NjRfbWlkZmllbGQY6gcgAygDEiAKFnJlcGVhdGVkX2ludDY0X2hpZmllbGQYwoQ9IAMoAxIhChVwYWNrZWRfaW50NjRfbG93ZmllbGQYAyADKANCAhABEiIKFXBhY2tlZF9pbnQ2NF9taWRmaWVsZBjrByADKANCAhABEiIKFHBhY2tlZF9pbnQ2NF9oaWZpZWxkGMOEPSADKANCAhABEhMKC290aGVyX2ZpZWxkGGMgASgFKgoIgIl6EICAgIACMlMKEm9wdGlvbmFsX2ludDY0X2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDY0UGFyc2VUZXN0ZXIYgIl6IAEoA1IQb3B0aW9uYWxJbnQ2NEV4dDJTChJyZXBlYXRlZF9pbnQ2NF9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5JbnQ2NFBhcnNlVGVzdGVyGIGJeiADKANSEHJlcGVhdGVkSW50NjRFeHQyUwoQcGFja2VkX2ludDY0X2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDY0UGFyc2VUZXN0ZXIYgol6IAMoA0ICEAFSDnBhY2tlZEludDY0RXh0IowBCh9JbmxpbmVkU3RyaW5nSWR4UmVncmVzc2lvblByb3RvEgwKBHN0cjEYASABKAkSPwoDc3ViGAIgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuSW5saW5lZFN0cmluZ0lkeFJlZ3Jlc3Npb25Qcm90bxIMCgRzdHIyGAMgASgJEgwKBHN0cjMYBCABKAwinwMKEVN0cmluZ1BhcnNlVGVzdGVyEiAKGG9wdGlvbmFsX3N0cmluZ19sb3dmaWVsZBgBIAEoCRIhChhvcHRpb25hbF9zdHJpbmdfbWlkZmllbGQY6QcgASgJEiEKF29wdGlvbmFsX3N0cmluZ19oaWZpZWxkGMGEPSABKAkSIAoYcmVwZWF0ZWRfc3RyaW5nX2xvd2ZpZWxkGAIgAygJEiEKGHJlcGVhdGVkX3N0cmluZ19taWRmaWVsZBjqByADKAkSIQoXcmVwZWF0ZWRfc3RyaW5nX2hpZmllbGQYwoQ9IAMoCSoKCICJehCAgICAAjJWChNvcHRpb25hbF9zdHJpbmdfZXh0EiQucHJvdG9idWZfdW5pdHRlc3QuU3RyaW5nUGFyc2VUZXN0ZXIYgIl6IAEoCVIRb3B0aW9uYWxTdHJpbmdFeHQyVgoTcmVwZWF0ZWRfc3RyaW5nX2V4dBIkLnByb3RvYnVmX3VuaXR0ZXN0LlN0cmluZ1BhcnNlVGVzdGVyGIGJeiADKAlSEXJlcGVhdGVkU3RyaW5nRXh0IjMKDUJhZEZpZWxkTmFtZXMSFQoNT3B0aW9uYWxJbnQzMhgBIAEoBRILCgNmb3IYAiABKAUidQoaVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb24SKQohb3B0aW9uYWxfdW5yZWRhY3RlZF9uZXN0ZWRfc3RyaW5nGAEgASgJEiwKH29wdGlvbmFsX3JlZGFjdGVkX25lc3RlZF9zdHJpbmcYAiABKAlCA4ABASKpBgoOUmVkYWN0ZWRGaWVsZHMSJQoYb3B0aW9uYWxfcmVkYWN0ZWRfc3RyaW5nGAEgASgJQgOAAQESIgoab3B0aW9uYWxfdW5yZWRhY3RlZF9zdHJpbmcYAiABKAkSJQoYcmVwZWF0ZWRfcmVkYWN0ZWRfc3RyaW5nGAMgAygJQgOAAQESIgoacmVwZWF0ZWRfdW5yZWRhY3RlZF9zdHJpbmcYBCADKAkSVQoZb3B0aW9uYWxfcmVkYWN0ZWRfbWVzc2FnZRgFIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlUmVkYWN0aW9uQgOAAQESUgobb3B0aW9uYWxfdW5yZWRhY3RlZF9tZXNzYWdlGAYgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb24SVQoZcmVwZWF0ZWRfcmVkYWN0ZWRfbWVzc2FnZRgHIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlUmVkYWN0aW9uQgOAAQESUgobcmVwZWF0ZWRfdW5yZWRhY3RlZF9tZXNzYWdlGAggAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb24SWgoTbWFwX3JlZGFjdGVkX3N0cmluZxgJIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlJlZGFjdGVkRmllbGRzLk1hcFJlZGFjdGVkU3RyaW5nRW50cnlCA4ABARJZChVtYXBfdW5yZWRhY3RlZF9zdHJpbmcYCiADKAsyOi5wcm90b2J1Zl91bml0dGVzdC5SZWRhY3RlZEZpZWxkcy5NYXBVbnJlZGFjdGVkU3RyaW5nRW50cnkaOAoWTWFwUmVkYWN0ZWRTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjoKGE1hcFVucmVkYWN0ZWRTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIlsKCFRlc3RDb3JkEh8KE29wdGlvbmFsX2J5dGVzX2NvcmQYASABKAxCAggBEi4KG29wdGlvbmFsX2J5dGVzX2NvcmRfZGVmYXVsdBgCIAEoDDoFaGVsbG9CAggBIp4BChhUZXN0UGFja2VkRW51bVNtYWxsUmFuZ2USSAoEdmFscxgBIAMoDjI2LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFbnVtU21hbGxSYW5nZS5OZXN0ZWRFbnVtQgIQASI4CgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMimQQKEUVudW1zRm9yQmVuY2htYXJrIowBCgRGbGF0EgYKAkEwEAASBgoCQTEQARIGCgJBMhACEgYKAkEzEAMSBgoCQTQQBBIGCgJBNRAFEgYKAkE2EAYSBgoCQTcQBxIGCgJBOBAIEgYKAkE5EAkSBwoDQTEwEAoSBwoDQTExEAsSBwoDQTEyEAwSBwoDQTEzEA0SBwoDQTE0EA4SBwoDQTE1EA8ikwEKCkFsbW9zdEZsYXQSBgoCQjAQABIGCgJCMRABEgYKAkIyEAISBgoCQjMQAxIGCgJCNRAFEgYKAkI2EAYSBgoCQjcQBxIGCgJCOBAIEgYKAkI5EAkSBwoDQjExEAsSBwoDQjEyEAwSBwoDQjEzEA0SBwoDQjE0EA4SBwoDQjE1EA8SBwoDQjE3EBESBwoDQjE5EBMi3gEKBlNwYXJzZRIJCgRDNTM2EJgEEgoKBUM4Mzg3EMNBEgoKBUM5NjczEMlLEgsKBkMxMDI4NRCtUBILCgZDMTMzMTgQhmgSCwoGQzE1OTYzENt8EgwKBkMxNjQzORC3gAESDAoGQzE4MTk3EJWOARIMCgZDMTk0MzAQ5pcBEgwKBkMyMDM2MRCJnwESDAoGQzIwNzA2EOKhARIMCgZDMjEwNTAQuqQBEgwKBkMyMTkwNhCSqwESDAoGQzI3MjY1EIHVARIMCgZDMzAxMDkQnesBEgwKBkMzMTY3MBC29wEinQcKJFRlc3RNZXNzYWdlV2l0aE1hbnlSZXBlYXRlZFB0ckZpZWxkcxIZChFyZXBlYXRlZF9zdHJpbmdfMRgBIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfMhgCIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfMxgDIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNBgEIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNRgFIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNhgGIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNxgHIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfOBgIIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfORgJIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTAYCiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzExGAsgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xMhgMIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTMYDSADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE0GA4gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xNRgPIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTYYECADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE3GBEgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xOBgSIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTkYEyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzIwGBQgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yMRgVIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjIYFiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzIzGBcgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yNBgYIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjUYGSADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI2GBogAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yNxgbIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjgYHCADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI5GB0gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18zMBgeIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMzEYHyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzMyGCAgAygJKlEKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGEg8KC0ZPUkVJR05fQkFYECAqQQoWVGVzdFJlc2VydmVkRW51bUZpZWxkcxILCgdVTktOT1dOEAAiBAgCEAIiBAgPEA8iBAgJEAsqA2JhcioDYmF6KksKFFRlc3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoERk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAiqLDwoNVmVyeUxhcmdlRW51bRIWChJFTlVNX0xBQkVMX0RFRkFVTFQQABIQCgxFTlVNX0xBQkVMXzEQARIQCgxFTlVNX0xBQkVMXzIQAhIQCgxFTlVNX0xBQkVMXzMQAxIQCgxFTlVNX0xBQkVMXzQQBBIQCgxFTlVNX0xBQkVMXzUQBRIQCgxFTlVNX0xBQkVMXzYQBhIQCgxFTlVNX0xBQkVMXzcQBxIQCgxFTlVNX0xBQkVMXzgQCBIQCgxFTlVNX0xBQkVMXzkQCRIRCg1FTlVNX0xBQkVMXzEwEAoSEQoNRU5VTV9MQUJFTF8xMRALEhEKDUVOVU1fTEFCRUxfMTIQDBIRCg1FTlVNX0xBQkVMXzEzEA0SEQoNRU5VTV9MQUJFTF8xNBAOEhEKDUVOVU1fTEFCRUxfMTUQDxIRCg1FTlVNX0xBQkVMXzE2EBASEQoNRU5VTV9MQUJFTF8xNxAREhEKDUVOVU1fTEFCRUxfMTgQEhIRCg1FTlVNX0xBQkVMXzE5EBMSEQoNRU5VTV9MQUJFTF8yMBAUEhEKDUVOVU1fTEFCRUxfMjEQFRIRCg1FTlVNX0xBQkVMXzIyEBYSEQoNRU5VTV9MQUJFTF8yMxAXEhEKDUVOVU1fTEFCRUxfMjQQGBIRCg1FTlVNX0xBQkVMXzI1EBkSEQoNRU5VTV9MQUJFTF8yNhAaEhEKDUVOVU1fTEFCRUxfMjcQGxIRCg1FTlVNX0xBQkVMXzI4EBwSEQoNRU5VTV9MQUJFTF8yORAdEhEKDUVOVU1fTEFCRUxfMzAQHhIRCg1FTlVNX0xBQkVMXzMxEB8SEQoNRU5VTV9MQUJFTF8zMhAgEhEKDUVOVU1fTEFCRUxfMzMQIRIRCg1FTlVNX0xBQkVMXzM0ECISEQoNRU5VTV9MQUJFTF8zNRAjEhEKDUVOVU1fTEFCRUxfMzYQJBIRCg1FTlVNX0xBQkVMXzM3ECUSEQoNRU5VTV9MQUJFTF8zOBAmEhEKDUVOVU1fTEFCRUxfMzkQJxIRCg1FTlVNX0xBQkVMXzQwECgSEQoNRU5VTV9MQUJFTF80MRApEhEKDUVOVU1fTEFCRUxfNDIQKhIRCg1FTlVNX0xBQkVMXzQzECsSEQoNRU5VTV9MQUJFTF80NBAsEhEKDUVOVU1fTEFCRUxfNDUQLRIRCg1FTlVNX0xBQkVMXzQ2EC4SEQoNRU5VTV9MQUJFTF80NxAvEhEKDUVOVU1fTEFCRUxfNDgQMBIRCg1FTlVNX0xBQkVMXzQ5EDESEQoNRU5VTV9MQUJFTF81MBAyEhEKDUVOVU1fTEFCRUxfNTEQMxIRCg1FTlVNX0xBQkVMXzUyEDQSEQoNRU5VTV9MQUJFTF81MxA1EhEKDUVOVU1fTEFCRUxfNTQQNhIRCg1FTlVNX0xBQkVMXzU1EDcSEQoNRU5VTV9MQUJFTF81NhA4EhEKDUVOVU1fTEFCRUxfNTcQORIRCg1FTlVNX0xBQkVMXzU4EDoSEQoNRU5VTV9MQUJFTF81ORA7EhEKDUVOVU1fTEFCRUxfNjAQPBIRCg1FTlVNX0xBQkVMXzYxED0SEQoNRU5VTV9MQUJFTF82MhA+EhEKDUVOVU1fTEFCRUxfNjMQPxIRCg1FTlVNX0xBQkVMXzY0EEASEQoNRU5VTV9MQUJFTF82NRBBEhEKDUVOVU1fTEFCRUxfNjYQQhIRCg1FTlVNX0xBQkVMXzY3EEMSEQoNRU5VTV9MQUJFTF82OBBEEhEKDUVOVU1fTEFCRUxfNjkQRRIRCg1FTlVNX0xBQkVMXzcwEEYSEQoNRU5VTV9MQUJFTF83MRBHEhEKDUVOVU1fTEFCRUxfNzIQSBIRCg1FTlVNX0xBQkVMXzczEEkSEQoNRU5VTV9MQUJFTF83NBBKEhEKDUVOVU1fTEFCRUxfNzUQSxIRCg1FTlVNX0xBQkVMXzc2EEwSEQoNRU5VTV9MQUJFTF83NxBNEhEKDUVOVU1fTEFCRUxfNzgQThIRCg1FTlVNX0xBQkVMXzc5EE8SEQoNRU5VTV9MQUJFTF84MBBQEhEKDUVOVU1fTEFCRUxfODEQURIRCg1FTlVNX0xBQkVMXzgyEFISEQoNRU5VTV9MQUJFTF84MxBTEhEKDUVOVU1fTEFCRUxfODQQVBIRCg1FTlVNX0xBQkVMXzg1EFUSEQoNRU5VTV9MQUJFTF84NhBWEhEKDUVOVU1fTEFCRUxfODcQVxIRCg1FTlVNX0xBQkVMXzg4EFgSEQoNRU5VTV9MQUJFTF84ORBZEhEKDUVOVU1fTEFCRUxfOTAQWhIRCg1FTlVNX0xBQkVMXzkxEFsSEQoNRU5VTV9MQUJFTF85MhBcEhEKDUVOVU1fTEFCRUxfOTMQXRIRCg1FTlVNX0xBQkVMXzk0EF4SEQoNRU5VTV9MQUJFTF85NRBfEhEKDUVOVU1fTEFCRUxfOTYQYBIRCg1FTlVNX0xBQkVMXzk3EGESEQoNRU5VTV9MQUJFTF85OBBiEhEKDUVOVU1fTEFCRUxfOTkQYxISCg5FTlVNX0xBQkVMXzEwMBBkMpkBCgtUZXN0U2VydmljZRJECgNGb28SHS5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXF1ZXN0Gh4ucHJvdG9idWZfdW5pdHRlc3QuRm9vUmVzcG9uc2USRAoDQmFyEh0ucHJvdG9idWZfdW5pdHRlc3QuQmFyUmVxdWVzdBoeLnByb3RvYnVmX3VuaXR0ZXN0LkJhclJlc3BvbnNlOl4KGG9wdGlvbmFsX2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAEgASgFUhZvcHRpb25hbEludDMyRXh0ZW5zaW9uOl4KGG9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAIgASgDUhZvcHRpb25hbEludDY0RXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgDIAEoDVIXb3B0aW9uYWxVaW50MzJFeHRlbnNpb246YAoZb3B0aW9uYWxfdWludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAQgASgEUhdvcHRpb25hbFVpbnQ2NEV4dGVuc2lvbjpgChlvcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYBSABKBFSF29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgGIAEoElIXb3B0aW9uYWxTaW50NjRFeHRlbnNpb246Ygoab3B0aW9uYWxfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgHIAEoB1IYb3B0aW9uYWxGaXhlZDMyRXh0ZW5zaW9uOmIKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCCABKAZSGG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbjpkChtvcHRpb25hbF9zZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgJIAEoD1IZb3B0aW9uYWxTZml4ZWQzMkV4dGVuc2lvbjpkChtvcHRpb25hbF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgKIAEoEFIZb3B0aW9uYWxTZml4ZWQ2NEV4dGVuc2lvbjpeChhvcHRpb25hbF9mbG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgLIAEoAlIWb3B0aW9uYWxGbG9hdEV4dGVuc2lvbjpgChlvcHRpb25hbF9kb3VibGVfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDCABKAFSF29wdGlvbmFsRG91YmxlRXh0ZW5zaW9uOlwKF29wdGlvbmFsX2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDSABKAhSFW9wdGlvbmFsQm9vbEV4dGVuc2lvbjpgChlvcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDiABKAlSF29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uOl4KGG9wdGlvbmFsX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGA8gASgMUhZvcHRpb25hbEJ5dGVzRXh0ZW5zaW9uOokBChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMioucHJvdG9idWZfdW5pdHRlc3QuT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb246ngEKIW9wdGlvbmFsX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBIgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqUAQoib3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBMgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VSH29wdGlvbmFsRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246mAEKIW9wdGlvbmFsX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSHm9wdGlvbmFsSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqVAQoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFSABKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uOosBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbjqPAQoeb3B0aW9uYWxfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIbb3B0aW9uYWxJbXBvcnRFbnVtRXh0ZW5zaW9uOm8KH29wdGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgYIAEoCUICCAJSHG9wdGlvbmFsU3RyaW5nUGllY2VFeHRlbnNpb246XAoXb3B0aW9uYWxfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgZIAEoCVIVb3B0aW9uYWxDb3JkRXh0ZW5zaW9uOqsBCihvcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZVIkb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOp4BCh9vcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYGyABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSHG9wdGlvbmFsTGF6eU1lc3NhZ2VFeHRlbnNpb246swEKKm9wdGlvbmFsX3VudmVyaWZpZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBwgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAngBUiZvcHRpb25hbFVudmVyaWZpZWRMYXp5TWVzc2FnZUV4dGVuc2lvbjpeChhyZXBlYXRlZF9pbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgfIAMoBVIWcmVwZWF0ZWRJbnQzMkV4dGVuc2lvbjpeChhyZXBlYXRlZF9pbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxggIAMoA1IWcmVwZWF0ZWRJbnQ2NEV4dGVuc2lvbjpgChlyZXBlYXRlZF91aW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYISADKA1SF3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uOmAKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgiIAMoBFIXcmVwZWF0ZWRVaW50NjRFeHRlbnNpb246YAoZcmVwZWF0ZWRfc2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCMgAygRUhdyZXBlYXRlZFNpbnQzMkV4dGVuc2lvbjpgChlyZXBlYXRlZF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJCADKBJSF3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uOmIKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJSADKAdSGHJlcGVhdGVkRml4ZWQzMkV4dGVuc2lvbjpiChpyZXBlYXRlZF9maXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCYgAygGUhhyZXBlYXRlZEZpeGVkNjRFeHRlbnNpb246ZAobcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA9SGXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb246ZAobcmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBBSGXJlcGVhdGVkU2ZpeGVkNjRFeHRlbnNpb246XgoYcmVwZWF0ZWRfZmxvYXRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKSADKAJSFnJlcGVhdGVkRmxvYXRFeHRlbnNpb246YAoZcmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCogAygBUhdyZXBlYXRlZERvdWJsZUV4dGVuc2lvbjpcChdyZXBlYXRlZF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCsgAygIUhVyZXBlYXRlZEJvb2xFeHRlbnNpb246YAoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCwgAygJUhdyZXBlYXRlZFN0cmluZ0V4dGVuc2lvbjpeChhyZXBlYXRlZF9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgtIAMoDFIWcmVwZWF0ZWRCeXRlc0V4dGVuc2lvbjqJAQoXcmVwZWF0ZWRncm91cF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxguIAMoCjIqLnByb3RvYnVmX3VuaXR0ZXN0LlJlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uUhZyZXBlYXRlZGdyb3VwRXh0ZW5zaW9uOp4BCiFyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUh5yZXBlYXRlZE5lc3RlZE1lc3NhZ2VFeHRlbnNpb246lAEKInJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgxIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlUh9yZXBlYXRlZEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOpgBCiFyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlUh5yZXBlYXRlZEltcG9ydE1lc3NhZ2VFeHRlbnNpb246lQEKHnJlcGVhdGVkX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDMgAygOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SG3JlcGVhdGVkTmVzdGVkRW51bUV4dGVuc2lvbjqLAQofcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDQgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1SHHJlcGVhdGVkRm9yZWlnbkVudW1FeHRlbnNpb246jwEKHnJlcGVhdGVkX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1SG3JlcGVhdGVkSW1wb3J0RW51bUV4dGVuc2lvbjpvCh9yZXBlYXRlZF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNiADKAlCAggCUhxyZXBlYXRlZFN0cmluZ1BpZWNlRXh0ZW5zaW9uOlwKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNyADKAlSFXJlcGVhdGVkQ29yZEV4dGVuc2lvbjqeAQofcmVwZWF0ZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDkgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxyZXBlYXRlZExhenlNZXNzYWdlRXh0ZW5zaW9uOmAKF2RlZmF1bHRfaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYPSABKAU6AjQxUhVkZWZhdWx0SW50MzJFeHRlbnNpb246YAoXZGVmYXVsdF9pbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg+IAEoAzoCNDJSFWRlZmF1bHRJbnQ2NEV4dGVuc2lvbjpiChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDNSFmRlZmF1bHRVaW50MzJFeHRlbnNpb246YgoYZGVmYXVsdF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQCABKAQ6AjQ0UhZkZWZhdWx0VWludDY0RXh0ZW5zaW9uOmMKGGRlZmF1bHRfc2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDVSFmRlZmF1bHRTaW50MzJFeHRlbnNpb246YgoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2UhZkZWZhdWx0U2ludDY0RXh0ZW5zaW9uOmQKGWRlZmF1bHRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhDIAEoBzoCNDdSF2RlZmF1bHRGaXhlZDMyRXh0ZW5zaW9uOmQKGWRlZmF1bHRfZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhEIAEoBjoCNDhSF2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uOmYKGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYRSABKA86AjQ5UhhkZWZhdWx0U2ZpeGVkMzJFeHRlbnNpb246ZwoaZGVmYXVsdF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhGIAEoEDoDLTUwUhhkZWZhdWx0U2ZpeGVkNjRFeHRlbnNpb246YgoXZGVmYXVsdF9mbG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNVIVZGVmYXVsdEZsb2F0RXh0ZW5zaW9uOmUKGGRlZmF1bHRfZG91YmxlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEggASgBOgU1MjAwMFIWZGVmYXVsdERvdWJsZUV4dGVuc2lvbjpgChZkZWZhdWx0X2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSSABKAg6BHRydWVSFGRlZmF1bHRCb29sRXh0ZW5zaW9uOmUKGGRlZmF1bHRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsb1IWZGVmYXVsdFN0cmluZ0V4dGVuc2lvbjpjChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEsgASgMOgV3b3JsZFIVZGVmYXVsdEJ5dGVzRXh0ZW5zaW9uOpgBCh1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFEgASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIaZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb246lgEKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFIgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW06C0ZPUkVJR05fQkFSUhtkZWZhdWx0Rm9yZWlnbkVudW1FeHRlbnNpb246mQEKHWRlZmF1bHRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bToKSU1QT1JUX0JBUlIaZGVmYXVsdEltcG9ydEVudW1FeHRlbnNpb246cgoeZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYVCABKAk6A2FiY0ICCAJSG2RlZmF1bHRTdHJpbmdQaWVjZUV4dGVuc2lvbjpfChZkZWZhdWx0X2NvcmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYVSABKAk6AzEyM1IUZGVmYXVsdENvcmRFeHRlbnNpb246WgoWb25lb2ZfdWludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGG8gASgNUhRvbmVvZlVpbnQzMkV4dGVuc2lvbjqYAQoeb25lb2ZfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYcCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIbb25lb2ZOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOloKFm9uZW9mX3N0cmluZ19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhxIAEoCVIUb25lb2ZTdHJpbmdFeHRlbnNpb246WAoVb25lb2ZfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYciABKAxSE29uZW9mQnl0ZXNFeHRlbnNpb246VQoTbXlfZXh0ZW5zaW9uX3N0cmluZxIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCVIRbXlFeHRlbnNpb25TdHJpbmc6TwoQbXlfZXh0ZW5zaW9uX2ludBIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgFIAEoBVIObXlFeHRlbnNpb25JbnQ6YQoWcGFja2VkX2ludDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAVIUcGFja2VkSW50MzJFeHRlbnNpb246YQoWcGFja2VkX2ludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAVIUcGFja2VkSW50NjRFeHRlbnNpb246YwoXcGFja2VkX3VpbnQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhcIAMoDUICEAFSFXBhY2tlZFVpbnQzMkV4dGVuc2lvbjpjChdwYWNrZWRfdWludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAVIVcGFja2VkVWludDY0RXh0ZW5zaW9uOmMKF3BhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhABUhVwYWNrZWRTaW50MzJFeHRlbnNpb246YwoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhfIAMoEkICEAFSFXBhY2tlZFNpbnQ2NEV4dGVuc2lvbjplChhwYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEAFSFnBhY2tlZEZpeGVkMzJFeHRlbnNpb246ZQoYcGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhABUhZwYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOmcKGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhiIAMoD0ICEAFSF3BhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOmcKGXBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAFSF3BhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmEKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAFSFHBhY2tlZEZsb2F0RXh0ZW5zaW9uOmMKF3BhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZSADKAFCAhABUhVwYWNrZWREb3VibGVFeHRlbnNpb246XwoVcGFja2VkX2Jvb2xfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABUhNwYWNrZWRCb29sRXh0ZW5zaW9uOn8KFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABUhNwYWNrZWRFbnVtRXh0ZW5zaW9uOmcKGHVucGFja2VkX2ludDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhAAUhZ1bnBhY2tlZEludDMyRXh0ZW5zaW9uOmcKGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhAAUhZ1bnBhY2tlZEludDY0RXh0ZW5zaW9uOmkKGXVucGFja2VkX3VpbnQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAFIXdW5wYWNrZWRVaW50MzJFeHRlbnNpb246aQoZdW5wYWNrZWRfdWludDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhAAUhd1bnBhY2tlZFVpbnQ2NEV4dGVuc2lvbjppChl1bnBhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEABSF3VucGFja2VkU2ludDMyRXh0ZW5zaW9uOmkKGXVucGFja2VkX3NpbnQ2NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAFIXdW5wYWNrZWRTaW50NjRFeHRlbnNpb246awoadW5wYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAFIYdW5wYWNrZWRGaXhlZDMyRXh0ZW5zaW9uOmsKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEABSGHVucGFja2VkRml4ZWQ2NEV4dGVuc2lvbjptCht1bnBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAFIZdW5wYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjptCht1bnBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAFIZdW5wYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbjpnChh1bnBhY2tlZF9mbG9hdF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGQgAygCQgIQAFIWdW5wYWNrZWRGbG9hdEV4dGVuc2lvbjppChl1bnBhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEABSF3VucGFja2VkRG91YmxlRXh0ZW5zaW9uOmUKF3VucGFja2VkX2Jvb2xfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEABSFXVucGFja2VkQm9vbEV4dGVuc2lvbjqFAQoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAAUhV1bnBhY2tlZEVudW1FeHRlbnNpb246cgoOdGVzdF9hbGxfdHlwZXMSJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVycxjgqv//ASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNSDHRlc3RBbGxUeXBlczp9CiV0ZXN0X2V4dGVuc2lvbl9pbnNpZGVfdGFibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlGAUgASgFUiF0ZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGVFeHRlbnNpb246qQEKBWlubmVyElgucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uT3V0ZXIuTGF5ZXIxT3B0aW9uYWxHcm91cC5MYXllcjJSZXBlYXRlZEdyb3VwGAMgASgLMjkucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uSW5uZXJFeHRlbnNpb25SBWlubmVyQh1CDVVuaXR0ZXN0UHJvdG9IAYABAYgBAZABAfgBAQ", [fileDesc_google_protobuf_unittest_import]); + fileDesc("Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0ItoaCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSRAoNb3B0aW9uYWxncm91cBgQIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwEk4KF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJQChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWwogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICeAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSRAoNcmVwZWF0ZWRncm91cBguIAMoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwEk4KF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJMChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRIZCg1kZWZhdWx0X2ludDMyGD0gASgFOgI0MRIZCg1kZWZhdWx0X2ludDY0GD4gASgDOgI0MhIaCg5kZWZhdWx0X3VpbnQzMhg/IAEoDToCNDMSGgoOZGVmYXVsdF91aW50NjQYQCABKAQ6AjQ0EhsKDmRlZmF1bHRfc2ludDMyGEEgASgROgMtNDUSGgoOZGVmYXVsdF9zaW50NjQYQiABKBI6AjQ2EhsKD2RlZmF1bHRfZml4ZWQzMhhDIAEoBzoCNDcSGwoPZGVmYXVsdF9maXhlZDY0GEQgASgGOgI0OBIcChBkZWZhdWx0X3NmaXhlZDMyGEUgASgPOgI0ORIdChBkZWZhdWx0X3NmaXhlZDY0GEYgASgQOgMtNTASGwoNZGVmYXVsdF9mbG9hdBhHIAEoAjoENTEuNRIdCg5kZWZhdWx0X2RvdWJsZRhIIAEoAToFNTIwMDASGgoMZGVmYXVsdF9ib29sGEkgASgIOgR0cnVlEh0KDmRlZmF1bHRfc3RyaW5nGEogASgJOgVoZWxsbxIcCg1kZWZhdWx0X2J5dGVzGEsgASgMOgV3b3JsZBJMChNkZWZhdWx0X25lc3RlZF9lbnVtGFEgASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUhJJChRkZWZhdWx0X2ZvcmVpZ25fZW51bRhSIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUhJNChNkZWZhdWx0X2ltcG9ydF9lbnVtGFMgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW06CklNUE9SVF9CQVISJQoUZGVmYXVsdF9zdHJpbmdfcGllY2UYVCABKAk6A2FiY0ICCAISHQoMZGVmYXVsdF9jb3JkGFUgASgJOgMxMjNCAggBEhYKDG9uZW9mX3VpbnQzMhhvIAEoDUgAEk0KFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAEhgKCm9uZW9mX2NvcmQYcyABKAlCAggBSAASIAoSb25lb2Zfc3RyaW5nX3BpZWNlGHQgASgJQgIIAkgAElYKGW9uZW9mX2xhenlfbmVzdGVkX21lc3NhZ2UYdSABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFIABobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGhoKDU9wdGlvbmFsR3JvdXASCQoBYRgRIAEoBRoaCg1SZXBlYXRlZEdyb3VwEgkKAWEYLyABKAUiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCK0AgoSTmVzdGVkVGVzdEFsbFR5cGVzEjQKBWNoaWxkGAEgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEjAKB3BheWxvYWQYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSPQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXMSPQoKbGF6eV9jaGlsZBgEIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlc0ICKAESOAoLZWFnZXJfY2hpbGQYBSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigAIp0CChRUZXN0RGVwcmVjYXRlZEZpZWxkcxIcChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYARImChpkZXByZWNhdGVkX3JlcGVhdGVkX3N0cmluZxgEIAMoCUICGAESTQoSZGVwcmVjYXRlZF9tZXNzYWdlGAMgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAhgBEicKGWRlcHJlY2F0ZWRfaW50MzJfaW5fb25lb2YYAiABKAVCAhgBSAASNwoGbmVzdGVkGAUgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdERlcHJlY2F0ZWRGaWVsZHNCDgoMb25lb2ZfZmllbGRzIhsKFVRlc3REZXByZWNhdGVkTWVzc2FnZToCGAEiJgoORm9yZWlnbk1lc3NhZ2USCQoBYxgBIAEoBRIJCgFkGAIgASgFIjAKElRlc3RSZXNlcnZlZEZpZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiHQoRVGVzdEFsbEV4dGVuc2lvbnMqCAgBEICAgIACIiQKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgkKAWEYESABKAUiJAoXUmVwZWF0ZWRHcm91cF9leHRlbnNpb24SCQoBYRgvIAEoBSK+AQocVGVzdE1peGVkRmllbGRzQW5kRXh0ZW5zaW9ucxIJCgFhGAEgASgFEgkKAWIYAyADKAcqBAgCEAMqBAgEEAUyPQoBYxIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNaXhlZEZpZWxkc0FuZEV4dGVuc2lvbnMYAiABKAVSAWMyPQoBZBIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNaXhlZEZpZWxkc0FuZEV4dGVuc2lvbnMYBCADKAdSAWQitQEKCVRlc3RHcm91cBJBCg1vcHRpb25hbGdyb3VwGBAgASgKMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEdyb3VwLk9wdGlvbmFsR3JvdXASPQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0aJgoNT3B0aW9uYWxHcm91cBIJCgFhGBEgASgFEgoKAnp6GFkgASgFIh4KElRlc3RHcm91cEV4dGVuc2lvbioICAEQgICAgAIiiwQKE1Rlc3ROZXN0ZWRFeHRlbnNpb24aJAoXT3B0aW9uYWxHcm91cF9leHRlbnNpb24SCQoBYRgRIAEoBTI/CgR0ZXN0EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6gcgASgJOgR0ZXN0UgR0ZXN0Ml0KF25lc3RlZF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6wcgASgJUhVuZXN0ZWRTdHJpbmdFeHRlbnNpb24yngEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEdyb3VwRXh0ZW5zaW9uGBAgASgKMj4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZEV4dGVuc2lvbi5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjKMAQofb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RHcm91cEV4dGVuc2lvbhgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uImwKElRlc3RDaGlsZEV4dGVuc2lvbhIJCgFhGAEgASgJEgkKAWIYAiABKAkSQAoSb3B0aW9uYWxfZXh0ZW5zaW9uGAMgASgLMiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMi1gIKFlRlc3RDaGlsZEV4dGVuc2lvbkRhdGESCQoBYRgBIAEoCRIJCgFiGAIgASgJEmEKEm9wdGlvbmFsX2V4dGVuc2lvbhgDIAEoCzJFLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RDaGlsZEV4dGVuc2lvbkRhdGEuTmVzdGVkVGVzdEFsbEV4dGVuc2lvbnNEYXRhGsIBChtOZXN0ZWRUZXN0QWxsRXh0ZW5zaW9uc0RhdGEScgoHZHluYW1pYxiAxK7DASABKAsyXS5wcm90b2J1Zl91bml0dGVzdC5UZXN0Q2hpbGRFeHRlbnNpb25EYXRhLk5lc3RlZFRlc3RBbGxFeHRlbnNpb25zRGF0YS5OZXN0ZWREeW5hbWljRXh0ZW5zaW9ucxovChdOZXN0ZWREeW5hbWljRXh0ZW5zaW9ucxIJCgFhGAEgASgFEgkKAWIYAiABKAUiWwoYVGVzdE5lc3RlZENoaWxkRXh0ZW5zaW9uEgkKAWEYASABKAUSNAoFY2hpbGQYAiABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0Q2hpbGRFeHRlbnNpb24iYwocVGVzdE5lc3RlZENoaWxkRXh0ZW5zaW9uRGF0YRIJCgFhGAEgASgFEjgKBWNoaWxkGAIgASgLMikucHJvdG9idWZfdW5pdHRlc3QuVGVzdENoaWxkRXh0ZW5zaW9uRGF0YSJUChBUZXN0UmVxdWlyZWRFbnVtEjUKDXJlcXVpcmVkX2VudW0YASACKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRIJCgFhGAIgASgFIrMBChZUZXN0UmVxdWlyZWRFbnVtTm9NYXNrEksKDXJlcXVpcmVkX2VudW0YASACKA4yNC5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTm9NYXNrLk5lc3RlZEVudW0SCQoBYRgCIAEoBSJBCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAISBwoDQkFSEGQSEAoDQkFaEP///////////wEiswIKFVRlc3RSZXF1aXJlZEVudW1NdWx0aRJMCg9yZXF1aXJlZF9lbnVtXzQYBCACKA4yMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTXVsdGkuTmVzdGVkRW51bRILCgNhXzMYAyABKAUSTAoPcmVxdWlyZWRfZW51bV8yGAIgAigOMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bU11bHRpLk5lc3RlZEVudW0SNwoPcmVxdWlyZWRfZW51bV8xGAEgAigOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0iOAoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhBkIsQDChdUZXN0UmVxdWlyZWROb01hc2tNdWx0aRIbChNyZXF1aXJlZF9maXhlZDMyXzgwGFAgAigHEhsKE3JlcXVpcmVkX2ZpeGVkMzJfNzAYRiACKAcSTwoQcmVxdWlyZWRfZW51bV82NBhAIAIoDjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpLk5lc3RlZEVudW0STgoPcmVxdWlyZWRfZW51bV80GAQgAigOMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkuTmVzdGVkRW51bRILCgNhXzMYAyABKAUSTgoPcmVxdWlyZWRfZW51bV8yGAIgAigOMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkuTmVzdGVkRW51bRI3Cg9yZXF1aXJlZF9lbnVtXzEYASACKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bSI4CgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEGQioQYKDFRlc3RSZXF1aXJlZBIJCgFhGAEgAigFEg4KBmR1bW15MhgCIAEoBRIJCgFiGAMgAigFEg4KBmR1bW15NBgEIAEoBRIOCgZkdW1teTUYBSABKAUSDgoGZHVtbXk2GAYgASgFEg4KBmR1bW15NxgHIAEoBRIOCgZkdW1teTgYCCABKAUSDgoGZHVtbXk5GAkgASgFEg8KB2R1bW15MTAYCiABKAUSDwoHZHVtbXkxMRgLIAEoBRIPCgdkdW1teTEyGAwgASgFEg8KB2R1bW15MTMYDSABKAUSDwoHZHVtbXkxNBgOIAEoBRIPCgdkdW1teTE1GA8gASgFEg8KB2R1bW15MTYYECABKAUSDwoHZHVtbXkxNxgRIAEoBRIPCgdkdW1teTE4GBIgASgFEg8KB2R1bW15MTkYEyABKAUSDwoHZHVtbXkyMBgUIAEoBRIPCgdkdW1teTIxGBUgASgFEg8KB2R1bW15MjIYFiABKAUSDwoHZHVtbXkyMxgXIAEoBRIPCgdkdW1teTI0GBggASgFEg8KB2R1bW15MjUYGSABKAUSDwoHZHVtbXkyNhgaIAEoBRIPCgdkdW1teTI3GBsgASgFEg8KB2R1bW15MjgYHCABKAUSDwoHZHVtbXkyORgdIAEoBRIPCgdkdW1teTMwGB4gASgFEg8KB2R1bW15MzEYHyABKAUSDwoHZHVtbXkzMhggIAEoBRIJCgFjGCEgAigFEjsKEG9wdGlvbmFsX2ZvcmVpZ24YIiABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZTJeCgZzaW5nbGUSJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxjoByABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRSBnNpbmdsZTJcCgVtdWx0aRIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOkHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZFIFbXVsdGki5AEKE1Rlc3RSZXF1aXJlZEZvcmVpZ24SOQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBI5ChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkEg0KBWR1bW15GAMgASgFEkgKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgEIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlc0ICKAEixgEKE1Rlc3RSZXF1aXJlZE1lc3NhZ2USOQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBI5ChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkEjkKEHJlcXVpcmVkX21lc3NhZ2UYAyACKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQiswMKGVRlc3ROZXN0ZWRSZXF1aXJlZEZvcmVpZ24SOwoFY2hpbGQYASABKAsyLC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkUmVxdWlyZWRGb3JlaWduEjcKB3BheWxvYWQYAiABKAsyJi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRGb3JlaWduEg0KBWR1bW15GAMgASgFEjoKDXJlcXVpcmVkX2VudW0YBSABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtEkgKFXJlcXVpcmVkX2VudW1fbm9fbWFzaxgGIAEoCzIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZEVudW1Ob01hc2sSRQoTcmVxdWlyZWRfZW51bV9tdWx0aRgHIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZEVudW1NdWx0aRJEChByZXF1aXJlZF9ub19tYXNrGAkgASgLMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkiWgoRVGVzdEZvcmVpZ25OZXN0ZWQSRQoOZm9yZWlnbl9uZXN0ZWQYASABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZSISChBUZXN0RW1wdHlNZXNzYWdlIioKHlRlc3RFbXB0eU1lc3NhZ2VXaXRoRXh0ZW5zaW9ucyoICAEQgICAgAIiWQoXVGVzdFBpY2tsZU5lc3RlZE1lc3NhZ2UaPgoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBRohChNOZXN0ZWROZXN0ZWRNZXNzYWdlEgoKAmNjGAEgASgFIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoGCK8gEJQhKgoIgIAEEICAgIACIjQKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIJCgFhGAEgASgFEg0KAmJiGP///38gASgFIlUKFFRlc3RSZWN1cnNpdmVNZXNzYWdlEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVjdXJzaXZlTWVzc2FnZRIJCgFpGAIgASgFIuYDChRUZXN0TXV0dWFsUmVjdXJzaW9uQRIzCgJiYhgBIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25CEkIKCHN1Ymdyb3VwGAIgASgKMjAucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXASRAoJc3ViZ3JvdXByGAUgAygKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXBSGkAKClN1Yk1lc3NhZ2USMgoBYhgBIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25CGo0BCghTdWJHcm91cBJHCgtzdWJfbWVzc2FnZRgDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Yk1lc3NhZ2USOAoPbm90X2luX3RoaXNfc2NjGAQgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGj0KCVN1Ykdyb3VwUhIwCgdwYXlsb2FkGAYgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzImIKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9pbnQzMhgCIAEoBSLKAQoRVGVzdElzSW5pdGlhbGl6ZWQSRAoLc3ViX21lc3NhZ2UYASABKAsyLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlGm8KClN1Yk1lc3NhZ2USSgoIc3ViZ3JvdXAYASABKAoyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlLlN1Ykdyb3VwGhUKCFN1Ykdyb3VwEgkKAWkYAiACKAUiswEKElRlc3REdXBGaWVsZE51bWJlchIJCgFhGAEgASgFEjYKA2ZvbxgCIAEoCjIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REdXBGaWVsZE51bWJlci5Gb28SNgoDYmFyGAMgASgKMikucHJvdG9idWZfdW5pdHRlc3QuVGVzdER1cEZpZWxkTnVtYmVyLkJhchoQCgNGb28SCQoBYRgBIAEoBRoQCgNCYXISCQoBYRgBIAEoBSJMChBUZXN0RWFnZXJNZXNzYWdlEjgKC3N1Yl9tZXNzYWdlGAEgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzQgIoACJLCg9UZXN0TGF6eU1lc3NhZ2USOAoLc3ViX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigBIlcKF1Rlc3RMYXp5TWVzc2FnZVJlcGVhdGVkEjwKEHJlcGVhdGVkX21lc3NhZ2UYASADKAsyIi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TGF6eU1lc3NhZ2UijwIKElRlc3RFYWdlck1heWJlTGF6eRI0CgttZXNzYWdlX2ZvbxgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI0CgttZXNzYWdlX2JhchgCIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJICgttZXNzYWdlX2JhehgDIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFYWdlck1heWJlTGF6eS5OZXN0ZWRNZXNzYWdlGkMKDU5lc3RlZE1lc3NhZ2USMgoGcGFja2VkGAEgASgLMiIucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZFR5cGVzIoACChhUZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMSWgoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYASABKAsyOS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMuTmVzdGVkTWVzc2FnZRqHAQoNTmVzdGVkTWVzc2FnZRIkChxuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ludDMyGAEgAygFElAKJW5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfZm9yZWlnbm1lc3NhZ2UYAiADKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZSLlAwoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSFgoOUHJpbWl0aXZlRmllbGQYASABKAUSEwoLU3RyaW5nRmllbGQYAiABKAkSMQoJRW51bUZpZWxkGAMgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SNwoMTWVzc2FnZUZpZWxkGAQgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USHAoQU3RyaW5nUGllY2VGaWVsZBgFIAEoCUICCAISFQoJQ29yZEZpZWxkGAYgASgJQgIIARIeChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFEhsKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAkSOQoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRI/ChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEiQKGFJlcGVhdGVkU3RyaW5nUGllY2VGaWVsZBgLIAMoCUICCAISHQoRUmVwZWF0ZWRDb3JkRmllbGQYDCADKAlCAggBItUBChJUZXN0RmllbGRPcmRlcmluZ3MSEQoJbXlfc3RyaW5nGAsgASgJEg4KBm15X2ludBgBIAEoAxIQCghteV9mbG9hdBhlIAEoAhJVChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRjIASABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZRonCg1OZXN0ZWRNZXNzYWdlEgoKAm9vGAIgASgDEgoKAmJiGAEgASgFKgQIAhALKgQIDBBlIrABChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMRIRCglteV9zdHJpbmcYASABKAkygQEKE3Rlc3RfZXh0X29yZGVyaW5nczESJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RmllbGRPcmRlcmluZ3MYDSABKAsyKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMVIRdGVzdEV4dE9yZGVyaW5nczEi+wIKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MyEhEKCW15X3N0cmluZxgBIAEoCRrIAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczMSEQoJbXlfc3RyaW5nGAEgASgJMpkBChN0ZXN0X2V4dF9vcmRlcmluZ3MzEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGA4gASgLMkIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczNSEXRlc3RFeHRPcmRlcmluZ3MzMoEBChN0ZXN0X2V4dF9vcmRlcmluZ3MyEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGAwgASgLMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczJSEXRlc3RFeHRPcmRlcmluZ3MyIrYHChhUZXN0RXh0cmVtZURlZmF1bHRWYWx1ZXMSPwoNZXNjYXBlZF9ieXRlcxgBIAEoDDooXDAwMFwwMDFcMDA3XDAxMFwwMTRcblxyXHRcMDEzXFxcJ1wiXDM3NhIgCgxsYXJnZV91aW50MzIYAiABKA06CjQyOTQ5NjcyOTUSKgoMbGFyZ2VfdWludDY0GAMgASgEOhQxODQ0Njc0NDA3MzcwOTU1MTYxNRIgCgtzbWFsbF9pbnQzMhgEIAEoBToLLTIxNDc0ODM2NDcSKQoLc21hbGxfaW50NjQYBSABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA3EicKEnJlYWxseV9zbWFsbF9pbnQzMhgVIAEoBToLLTIxNDc0ODM2NDgSMAoScmVhbGx5X3NtYWxsX2ludDY0GBYgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwOBIYCgt1dGY4X3N0cmluZxgGIAEoCToD4Yi0EhUKCnplcm9fZmxvYXQYByABKAI6ATASFAoJb25lX2Zsb2F0GAggASgCOgExEhgKC3NtYWxsX2Zsb2F0GAkgASgCOgMxLjUSHgoSbmVnYXRpdmVfb25lX2Zsb2F0GAogASgCOgItMRIcCg5uZWdhdGl2ZV9mbG9hdBgLIAEoAjoELTEuNRIaCgtsYXJnZV9mbG9hdBgMIAEoAjoFMmUrMDgSJAoUc21hbGxfbmVnYXRpdmVfZmxvYXQYDSABKAI6Bi04ZS0yOBIXCgppbmZfZG91YmxlGA4gASgBOgNpbmYSHAoObmVnX2luZl9kb3VibGUYDyABKAE6BC1pbmYSFwoKbmFuX2RvdWJsZRgQIAEoAToDbmFuEhYKCWluZl9mbG9hdBgRIAEoAjoDaW5mEhsKDW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmYSFgoJbmFuX2Zsb2F0GBMgASgCOgNuYW4SKwoMY3BwX3RyaWdyYXBoGBQgASgJOhU/ID8gPz8gPz8gPz8/ID8/LyA/Py0SIAoQc3RyaW5nX3dpdGhfemVybxgXIAEoCToGaGVsAGxvEiIKD2J5dGVzX3dpdGhfemVybxgYIAEoDDoJd29yXDAwMGxkEigKFnN0cmluZ19waWVjZV93aXRoX3plcm8YGSABKAk6BGFiAGNCAggCEiAKDmNvcmRfd2l0aF96ZXJvGBogASgJOgQxMgAzQgIIARImChJyZXBsYWNlbWVudF9zdHJpbmcYGyABKAk6CiR7dW5rbm93bn0iSwoRU3BhcnNlRW51bU1lc3NhZ2USNgoLc3BhcnNlX2VudW0YASABKA4yIS5wcm90b2J1Zl91bml0dGVzdC5UZXN0U3BhcnNlRW51bSIZCglPbmVTdHJpbmcSDAoEZGF0YRgBIAEoCSIaCgpNb3JlU3RyaW5nEgwKBGRhdGEYASADKAkiGAoIT25lQnl0ZXMSDAoEZGF0YRgBIAEoDCIZCglNb3JlQnl0ZXMSDAoEZGF0YRgBIAMoDCLrAwoSTWFueU9wdGlvbmFsU3RyaW5nEgwKBHN0cjEYASABKAkSDAoEc3RyMhgCIAEoCRIMCgRzdHIzGAMgASgJEgwKBHN0cjQYBCABKAkSDAoEc3RyNRgFIAEoCRIMCgRzdHI2GAYgASgJEgwKBHN0cjcYByABKAkSDAoEc3RyOBgIIAEoCRIMCgRzdHI5GAkgASgJEg0KBXN0cjEwGAogASgJEg0KBXN0cjExGAsgASgJEg0KBXN0cjEyGAwgASgJEg0KBXN0cjEzGA0gASgJEg0KBXN0cjE0GA4gASgJEg0KBXN0cjE1GA8gASgJEg0KBXN0cjE2GBAgASgJEg0KBXN0cjE3GBEgASgJEg0KBXN0cjE4GBIgASgJEg0KBXN0cjE5GBMgASgJEg0KBXN0cjIwGBQgASgJEg0KBXN0cjIxGBUgASgJEg0KBXN0cjIyGBYgASgJEg0KBXN0cjIzGBcgASgJEg0KBXN0cjI0GBggASgJEg0KBXN0cjI1GBkgASgJEg0KBXN0cjI2GBogASgJEg0KBXN0cjI3GBsgASgJEg0KBXN0cjI4GBwgASgJEg0KBXN0cjI5GB0gASgJEg0KBXN0cjMwGB4gASgJEg0KBXN0cjMxGB8gASgJEg0KBXN0cjMyGCAgASgJIhwKDEludDMyTWVzc2FnZRIMCgRkYXRhGAEgASgFIh0KDVVpbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoDSIcCgxJbnQ2NE1lc3NhZ2USDAoEZGF0YRgBIAEoAyIdCg1VaW50NjRNZXNzYWdlEgwKBGRhdGEYASABKAQiGwoLQm9vbE1lc3NhZ2USDAoEZGF0YRgBIAEoCCLQAQoJVGVzdE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASNgoLZm9vX21lc3NhZ2UYAyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNIABI5Cghmb29ncm91cBgEIAEoCjIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZi5Gb29Hcm91cEgAGiAKCEZvb0dyb3VwEgkKAWEYBSABKAUSCQoBYhgGIAEoCUIFCgNmb28i5wEKHFRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUSDwoHZm9vX2ludBgBIAEoBRISCgpmb29fc3RyaW5nGAIgASgJEjQKC2Zvb19tZXNzYWdlGAMgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEkoKCGZvb2dyb3VwGAQgASgKMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZS5Gb29Hcm91cBogCghGb29Hcm91cBIJCgFhGAUgASgFEgkKAWIYBiABKAkirwgKClRlc3RPbmVvZjISEQoHZm9vX2ludBgBIAEoBUgAEhQKCmZvb19zdHJpbmcYAiABKAlIABIWCghmb29fY29yZBgDIAEoCUICCAFIABIeChBmb29fc3RyaW5nX3BpZWNlGAQgASgJQgIIAkgAEhMKCWZvb19ieXRlcxgFIAEoDEgAEjwKCGZvb19lbnVtGAYgASgOMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSAASQgoLZm9vX21lc3NhZ2UYByABKAsyKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VIABI6Cghmb29ncm91cBgIIAEoCjImLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuRm9vR3JvdXBIABJLChBmb29fbGF6eV9tZXNzYWdlGAsgASgLMisucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlQgIoAUgAEhwKDmZvb19ieXRlc19jb3JkGB4gASgMQgIIAUgAEhQKB2Jhcl9pbnQYDCABKAU6ATVIARIcCgpiYXJfc3RyaW5nGA0gASgJOgZTVFJJTkdIARIcCghiYXJfY29yZBgOIAEoCToEQ09SREICCAFIARImChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VCAggCSAESGgoJYmFyX2J5dGVzGBAgASgMOgVCWVRFU0gBEkEKCGJhcl9lbnVtGBEgASgOMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtOgNCQVJIARIpCh1iYXJfc3RyaW5nX3dpdGhfZW1wdHlfZGVmYXVsdBgUIAEoCToASAESKwobYmFyX2NvcmRfd2l0aF9lbXB0eV9kZWZhdWx0GBUgASgJOgBCAggBSAESMwojYmFyX3N0cmluZ19waWVjZV93aXRoX2VtcHR5X2RlZmF1bHQYFiABKAk6AEICCAJIARIoChxiYXJfYnl0ZXNfd2l0aF9lbXB0eV9kZWZhdWx0GBcgASgMOgBIARIPCgdiYXpfaW50GBIgASgFEhcKCmJhel9zdHJpbmcYEyABKAk6A0JBWhogCghGb29Hcm91cBIJCgFhGAkgASgFEgkKAWIYCiABKAkabwoNTmVzdGVkTWVzc2FnZRIPCgdtb29faW50GAEgASgDEhEKCWNvcmdlX2ludBgCIAMoBRI6CgVjaGlsZBgDIAEoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZSInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQgUKA2Zvb0IFCgNiYXIijAIKEVRlc3RSZXF1aXJlZE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASSQoLZm9vX21lc3NhZ2UYAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSAASUgoQZm9vX2xhenlfbWVzc2FnZRgEIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE9uZW9mLk5lc3RlZE1lc3NhZ2VCAigBSAAaKAoNTmVzdGVkTWVzc2FnZRIXCg9yZXF1aXJlZF9kb3VibGUYASACKAFCBQoDZm9vIqoDCg9UZXN0UGFja2VkVHlwZXMSGAoMcGFja2VkX2ludDMyGFogAygFQgIQARIYCgxwYWNrZWRfaW50NjQYWyADKANCAhABEhkKDXBhY2tlZF91aW50MzIYXCADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYXSADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYXyADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYZiADKAhCAhABEjcKC3BhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABIsgDChFUZXN0VW5wYWNrZWRUeXBlcxIaCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GF0gAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGYgAygIQgIQABI5Cg11bnBhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAAIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiIiChZUZXN0VW5wYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiKZBAoVVGVzdER5bmFtaWNFeHRlbnNpb25zEhkKEHNjYWxhcl9leHRlbnNpb24Y0A8gASgHEjcKDmVudW1fZXh0ZW5zaW9uGNEPIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtElkKFmR5bmFtaWNfZW51bV9leHRlbnNpb24Y0g8gASgOMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNFbnVtVHlwZRI9ChFtZXNzYWdlX2V4dGVuc2lvbhjTDyABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJfChlkeW5hbWljX21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzI7LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGUSGwoScmVwZWF0ZWRfZXh0ZW5zaW9uGNUPIAMoCRIdChBwYWNrZWRfZXh0ZW5zaW9uGNYPIAMoEUICEAEaLAoSRHluYW1pY01lc3NhZ2VUeXBlEhYKDWR5bmFtaWNfZmllbGQYtBAgASgFIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZPTxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESJ8ChJUZXN0UmVwZWF0ZWRTdHJpbmcSGAoQcmVwZWF0ZWRfc3RyaW5nMRgBIAMoCRIYChByZXBlYXRlZF9zdHJpbmcyGAIgAygJEhgKEHJlcGVhdGVkX2J5dGVzMTEYCyADKAwSGAoQcmVwZWF0ZWRfYnl0ZXMxMhgMIAMoDCLAAQojVGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSGAoQcmVwZWF0ZWRfZml4ZWQzMhgMIAMoBxIWCg5yZXBlYXRlZF9pbnQzMhgNIAMoBRIZChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBhIXCg5yZXBlYXRlZF9pbnQ2NBj/DyADKAMSGAoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAhIZCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBCKRCgoQVGVzdFBhcnNpbmdNZXJnZRI7ChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgDIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJICg1vcHRpb25hbGdyb3VwGAogASgKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZS5PcHRpb25hbEdyb3VwEkgKDXJlcGVhdGVkZ3JvdXAYFCADKAoyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkR3JvdXAaqgQKF1JlcGVhdGVkRmllbGRzR2VuZXJhdG9yEi8KBmZpZWxkMRgBIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxIvCgZmaWVsZDIYAiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSLwoGZmllbGQzGAMgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzElIKBmdyb3VwMRgKIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxElIKBmdyb3VwMhgUIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAyEi4KBGV4dDEY6AcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEi4KBGV4dDIY6QcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGjkKBkdyb3VwMRIvCgZmaWVsZDEYCyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMaOQoGR3JvdXAyEi8KBmZpZWxkMRgVIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1PcHRpb25hbEdyb3VwEkEKGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1SZXBlYXRlZEdyb3VwEkEKGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyoJCOgHEICAgIACMmgKDG9wdGlvbmFsX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UY6AcgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzUgtvcHRpb25hbEV4dDJoCgxyZXBlYXRlZF9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlGOkHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc1ILcmVwZWF0ZWRFeHQiUgoSVGVzdE1lcmdlRXhjZXB0aW9uEjwKDmFsbF9leHRlbnNpb25zGAEgASgLMiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMiRAobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEiUKAWEYASABKAk6GiovIDwtIE5laXRoZXIgc2hvdWxkIHRoaXMuIlkKD1Rlc3RNZXNzYWdlU2l6ZRIKCgJtMRgBIAEoCBIKCgJtMhgCIAEoAxIKCgJtMxgDIAEoCBIKCgJtNBgEIAEoCRIKCgJtNRgFIAEoBRIKCgJtNhgGIAEoAyIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIqYBCgxUZXN0SnNvbk5hbWUSEwoLZmllbGRfbmFtZTEYASABKAUSEgoKZmllbGROYW1lMhgCIAEoBRISCgpGaWVsZE5hbWUzGAMgASgFEhQKDF9maWVsZF9uYW1lNBgEIAEoBRITCgtGSUVMRF9OQU1FNRgFIAEoBRIaCgtmaWVsZF9uYW1lNhgGIAEoBVIFQHR5cGUSEgoKZmllbGRuYW1lNxgHIAEoBSL9BQoUVGVzdEh1Z2VGaWVsZE51bWJlcnMSGgoOb3B0aW9uYWxfaW50MzIY8Pj//wEgASgFEhQKCGZpeGVkXzMyGPH4//8BIAEoBRIeCg5yZXBlYXRlZF9pbnQzMhjy+P//ASADKAVCAhAAEhwKDHBhY2tlZF9pbnQzMhjz+P//ASADKAVCAhABEjkKDW9wdGlvbmFsX2VudW0Y9Pj//wEgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SGwoPb3B0aW9uYWxfc3RyaW5nGPX4//8BIAEoCRIaCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAwSPwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJQCg1vcHRpb25hbGdyb3VwGPj4//8BIAEoCjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RIdWdlRmllbGROdW1iZXJzLk9wdGlvbmFsR3JvdXASWwoRc3RyaW5nX3N0cmluZ19tYXAY+vj//wEgAygLMjwucHJvdG9idWZfdW5pdHRlc3QuVGVzdEh1Z2VGaWVsZE51bWJlcnMuU3RyaW5nU3RyaW5nTWFwRW50cnkSGgoMb25lb2ZfdWludDMyGPv4//8BIAEoDUgAEkMKFG9uZW9mX3Rlc3RfYWxsX3R5cGVzGPz4//8BIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0gAEhoKDG9uZW9mX3N0cmluZxj9+P//ASABKAlIABIZCgtvbmVvZl9ieXRlcxj++P//ASABKAxIABokCg1PcHRpb25hbEdyb3VwEhMKB2dyb3VwX2EY+fj//wEgASgFGjYKFFN0cmluZ1N0cmluZ01hcEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEqDAjgqv//ARDw+P//AUINCgtvbmVvZl9maWVsZCKxAQoYVGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlEg4KBmZpZWxkMRgBIAEoBRIOCgZmaWVsZDIYAiABKAUSDgoGZmllbGQzGAMgASgFEg4KBmZpZWxkNBgEIAEoBRIOCgZmaWVsZDYYBiABKAUSDgoGZmllbGQ3GAcgASgFEg4KBmZpZWxkOBgIIAEoBRIOCgZmaWVsZDkYCSABKAUSDwoHZmllbGQxMBgKIAEoBSoECAUQBiKWBAodVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uT3V0ZXISYQoTbGF5ZXIxb3B0aW9uYWxncm91cBgBIAEoCjJELnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyLkxheWVyMU9wdGlvbmFsR3JvdXAakQMKE0xheWVyMU9wdGlvbmFsR3JvdXASdQoTbGF5ZXIycmVwZWF0ZWRncm91cBgCIAMoCjJYLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyLkxheWVyMU9wdGlvbmFsR3JvdXAuTGF5ZXIyUmVwZWF0ZWRHcm91cBKTAQoibGF5ZXIyYW5vdGhlcm9wdGlvbmFscmVwZWF0ZWRncm91cBgEIAMoCjJnLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyLkxheWVyMU9wdGlvbmFsR3JvdXAuTGF5ZXIyQW5vdGhlck9wdGlvbmFsUmVwZWF0ZWRHcm91cBoyChNMYXllcjJSZXBlYXRlZEdyb3VwEhUKDWFub3RoZXJfZmllbGQYBiABKAkqBAgDEAQaOQoiTGF5ZXIyQW5vdGhlck9wdGlvbmFsUmVwZWF0ZWRHcm91cBITCgtidXRfd2h5X3RobxgFIAEoCSI8CiZUZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25Jbm5lckV4dGVuc2lvbhISCgppbm5lcl9uYW1lGAEgASgJIv0DChtUZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUSDwoHZm9vX29uZRgBIAEoBRIPCgdmb29fdHdvGAYgASgFEhEKCWZvb190aHJlZRgHIAEoBRIQCghmb29fZm91chgNIAEoBSoECAIQAyoECAMQBSoECAkQCyoECA8QECoECBEQEioECBMQFDJHCgdiYXJfb25lEi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplGAIgASgFUgZiYXJPbmUyRwoHYmFyX3R3bxIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25SYW5nZVNlcmlhbGl6ZRgEIAEoBVIGYmFyVHdvMksKCWJhcl90aHJlZRIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25SYW5nZVNlcmlhbGl6ZRgKIAEoBVIIYmFyVGhyZWUySQoIYmFyX2ZvdXISLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYDyABKAVSB2JhckZvdXIySQoIYmFyX2ZpdmUSLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYEyABKAVSB2JhckZpdmUigQEKFVRlc3RWZXJpZnlJbnQzMlNpbXBsZRIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUi9QEKD1Rlc3RWZXJpZnlJbnQzMhIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyLKAgoVVGVzdFZlcmlmeU1vc3RseUludDMyEhkKEW9wdGlvbmFsX2ludDY0XzMwGB4gASgDEhgKEG9wdGlvbmFsX2ludDMyXzEYASABKAUSGAoQb3B0aW9uYWxfaW50MzJfMhgCIAEoBRIYChBvcHRpb25hbF9pbnQzMl8zGAMgASgFEhgKEG9wdGlvbmFsX2ludDMyXzQYBCABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyL1AgojVGVzdFZlcmlmeU1vc3RseUludDMyQmlnRmllbGROdW1iZXISGQoRb3B0aW9uYWxfaW50NjRfMzAYHiABKAMSGwoSb3B0aW9uYWxfaW50MzJfMzAwGKwCIAEoBRIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGAoQb3B0aW9uYWxfaW50MzJfMxgDIAEoBRIYChBvcHRpb25hbF9pbnQzMl80GAQgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMihgEKFlRlc3RWZXJpZnlVaW50MzJTaW1wbGUSGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGQoRb3B0aW9uYWxfdWludDMyXzIYAiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzYzGD8gASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NBhAIAEoDSL6AQoQVGVzdFZlcmlmeVVpbnQzMhIZChFvcHRpb25hbF91aW50MzJfMRgBIAEoDRIZChFvcHRpb25hbF91aW50MzJfMhgCIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjMYPyABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY0GEAgASgNEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMi+gEKE1Rlc3RWZXJpZnlPbmVVaW50MzISGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGAoQb3B0aW9uYWxfaW50MzJfMhgCIAEoBRIZChFvcHRpb25hbF9pbnQzMl82Mxg/IAEoBRIZChFvcHRpb25hbF9pbnQzMl82NBhAIAEoBRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIqECCiBUZXN0VmVyaWZ5T25lSW50MzJCaWdGaWVsZE51bWJlchIZChFvcHRpb25hbF9pbnQzMl82NRhBIAEoBRIYChBvcHRpb25hbF9pbnQ2NF8xGAEgASgDEhgKEG9wdGlvbmFsX2ludDY0XzIYAiABKAMSGQoRb3B0aW9uYWxfaW50NjRfNjMYPyABKAMSGQoRb3B0aW9uYWxfaW50NjRfNjQYQCABKAMSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyK8AgodVGVzdFZlcmlmeUludDMyQmlnRmllbGROdW1iZXISHAoTb3B0aW9uYWxfaW50MzJfMTAwMBjoByABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjUYQSABKAUSGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMiwwIKHlRlc3RWZXJpZnlVaW50MzJCaWdGaWVsZE51bWJlchIdChRvcHRpb25hbF91aW50MzJfMTAwMBjoByABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY1GEEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8yGAIgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82Mxg/IAEoDRIaChJvcHRpb25hbF91aW50MzJfNjQYQCABKA0SOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyKIBAoeVGVzdFZlcmlmeUJpZ0ZpZWxkTnVtYmVyVWludDMyElEKD29wdGlvbmFsX25lc3RlZBgBIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RWZXJpZnlCaWdGaWVsZE51bWJlclVpbnQzMi5OZXN0ZWQakgMKBk5lc3RlZBIdChRvcHRpb25hbF91aW50MzJfNTAwMBiIJyABKA0SHQoUb3B0aW9uYWxfdWludDMyXzEwMDAY6AcgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NhhCIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjUYQSABKA0SGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGQoRb3B0aW9uYWxfdWludDMyXzIYAiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzYzGD8gASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NBhAIAEoDRJRCg9vcHRpb25hbF9uZXN0ZWQYCSABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0VmVyaWZ5QmlnRmllbGROdW1iZXJVaW50MzIuTmVzdGVkElEKD3JlcGVhdGVkX25lc3RlZBgKIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RWZXJpZnlCaWdGaWVsZE51bWJlclVpbnQzMi5OZXN0ZWQiiSMKD0VudW1QYXJzZVRlc3RlchJTCh1vcHRpb25hbF9zZXFfc21hbGxfMF9sb3dmaWVsZBgBIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVAodb3B0aW9uYWxfc2VxX3NtYWxsXzBfbWlkZmllbGQY6QcgASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJUChxvcHRpb25hbF9zZXFfc21hbGxfMF9oaWZpZWxkGMGEPSABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElMKHXJlcGVhdGVkX3NlcV9zbWFsbF8wX2xvd2ZpZWxkGAIgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJUCh1yZXBlYXRlZF9zZXFfc21hbGxfMF9taWRmaWVsZBjqByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElQKHHJlcGVhdGVkX3NlcV9zbWFsbF8wX2hpZmllbGQYwoQ9IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVQobcGFja2VkX3NlcV9zbWFsbF8wX2xvd2ZpZWxkGAMgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMEICEAESVgobcGFja2VkX3NlcV9zbWFsbF8wX21pZGZpZWxkGOsHIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDBCAhABElYKGnBhY2tlZF9zZXFfc21hbGxfMF9oaWZpZWxkGMOEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwQgIQARJTCh1vcHRpb25hbF9zZXFfc21hbGxfMV9sb3dmaWVsZBgEIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVAodb3B0aW9uYWxfc2VxX3NtYWxsXzFfbWlkZmllbGQY7AcgASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJUChxvcHRpb25hbF9zZXFfc21hbGxfMV9oaWZpZWxkGMSEPSABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElMKHXJlcGVhdGVkX3NlcV9zbWFsbF8xX2xvd2ZpZWxkGAUgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJUCh1yZXBlYXRlZF9zZXFfc21hbGxfMV9taWRmaWVsZBjtByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElQKHHJlcGVhdGVkX3NlcV9zbWFsbF8xX2hpZmllbGQYxYQ9IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVQobcGFja2VkX3NlcV9zbWFsbF8xX2xvd2ZpZWxkGAYgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMUICEAESVgobcGFja2VkX3NlcV9zbWFsbF8xX21pZGZpZWxkGO4HIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDFCAhABElYKGnBhY2tlZF9zZXFfc21hbGxfMV9oaWZpZWxkGMaEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxQgIQARJQChtvcHRpb25hbF9zZXFfbGFyZ2VfbG93ZmllbGQYByABKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUQobb3B0aW9uYWxfc2VxX2xhcmdlX21pZGZpZWxkGO8HIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJRChpvcHRpb25hbF9zZXFfbGFyZ2VfaGlmaWVsZBjHhD0gASgOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElAKG3JlcGVhdGVkX3NlcV9sYXJnZV9sb3dmaWVsZBgIIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJRChtyZXBlYXRlZF9zZXFfbGFyZ2VfbWlkZmllbGQY8AcgAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElEKGnJlcGVhdGVkX3NlcV9sYXJnZV9oaWZpZWxkGMiEPSADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUgoZcGFja2VkX3NlcV9sYXJnZV9sb3dmaWVsZBgJIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZUICEAESUwoZcGFja2VkX3NlcV9sYXJnZV9taWRmaWVsZBjxByADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2VCAhABElMKGHBhY2tlZF9zZXFfbGFyZ2VfaGlmaWVsZBjJhD0gAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlQgIQARJRChtvcHRpb25hbF9hcmJpdHJhcnlfbG93ZmllbGQYCiABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKG29wdGlvbmFsX2FyYml0cmFyeV9taWRmaWVsZBjyByABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKGm9wdGlvbmFsX2FyYml0cmFyeV9oaWZpZWxkGMqEPSABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElEKG3JlcGVhdGVkX2FyYml0cmFyeV9sb3dmaWVsZBgLIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnkSUgobcmVwZWF0ZWRfYXJiaXRyYXJ5X21pZGZpZWxkGPMHIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnkSUgoacmVwZWF0ZWRfYXJiaXRyYXJ5X2hpZmllbGQYy4Q9IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnkSUwoZcGFja2VkX2FyYml0cmFyeV9sb3dmaWVsZBgMIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnlCAhABElQKGXBhY2tlZF9hcmJpdHJhcnlfbWlkZmllbGQY9AcgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeUICEAESVAoYcGFja2VkX2FyYml0cmFyeV9oaWZpZWxkGMyEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5QgIQARITCgtvdGhlcl9maWVsZBhjIAEoBSJKCglTZXFTbWFsbDASFwoTU0VRX1NNQUxMXzBfREVGQVVMVBAAEhEKDVNFUV9TTUFMTF8wXzEQARIRCg1TRVFfU01BTExfMF8yEAIiSgoJU2VxU21hbGwxEhcKE1NFUV9TTUFMTF8xX0RFRkFVTFQQARIRCg1TRVFfU01BTExfMV8yEAISEQoNU0VRX1NNQUxMXzFfMxADIoQFCghTZXFMYXJnZRIeChFTRVFfTEFSR0VfREVGQVVMVBD///////////8BEg8KC1NFUV9MQVJHRV8wEAASDwoLU0VRX0xBUkdFXzEQARIPCgtTRVFfTEFSR0VfMhACEg8KC1NFUV9MQVJHRV8zEAMSDwoLU0VRX0xBUkdFXzQQBBIPCgtTRVFfTEFSR0VfNRAFEg8KC1NFUV9MQVJHRV82EAYSDwoLU0VRX0xBUkdFXzcQBxIPCgtTRVFfTEFSR0VfOBAIEg8KC1NFUV9MQVJHRV85EAkSEAoMU0VRX0xBUkdFXzEwEAoSEAoMU0VRX0xBUkdFXzExEAsSEAoMU0VRX0xBUkdFXzEyEAwSEAoMU0VRX0xBUkdFXzEzEA0SEAoMU0VRX0xBUkdFXzE0EA4SEAoMU0VRX0xBUkdFXzE1EA8SEAoMU0VRX0xBUkdFXzE2EBASEAoMU0VRX0xBUkdFXzE3EBESEAoMU0VRX0xBUkdFXzE4EBISEAoMU0VRX0xBUkdFXzE5EBMSEAoMU0VRX0xBUkdFXzIwEBQSEAoMU0VRX0xBUkdFXzIxEBUSEAoMU0VRX0xBUkdFXzIyEBYSEAoMU0VRX0xBUkdFXzIzEBcSEAoMU0VRX0xBUkdFXzI0EBgSEAoMU0VRX0xBUkdFXzI1EBkSEAoMU0VRX0xBUkdFXzI2EBoSEAoMU0VRX0xBUkdFXzI3EBsSEAoMU0VRX0xBUkdFXzI4EBwSEAoMU0VRX0xBUkdFXzI5EB0SEAoMU0VRX0xBUkdFXzMwEB4SEAoMU0VRX0xBUkdFXzMxEB8SEAoMU0VRX0xBUkdFXzMyECASEAoMU0VRX0xBUkdFXzMzECEinQEKCUFyYml0cmFyeRIeChFBUkJJVFJBUllfREVGQVVMVBCNvvj///////8BEhgKC0FSQklUUkFSWV8xEIX//////////wESEAoLQVJCSVRSQVJZXzIQ1QESEQoLQVJCSVRSQVJZXzMQ3YENEhoKDUFSQklUUkFSWV9NSU4QgICAgPj/////ARIVCg1BUkJJVFJBUllfTUFYEP////8HKgoIgIl6EICAgIACMogBChZvcHRpb25hbF9hcmJpdHJhcnlfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyGICJeiABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5UhRvcHRpb25hbEFyYml0cmFyeUV4dDKIAQoWcmVwZWF0ZWRfYXJiaXRyYXJ5X2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3RlchiBiXogAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeVIUcmVwZWF0ZWRBcmJpdHJhcnlFeHQyiAEKFHBhY2tlZF9hcmJpdHJhcnlfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyGIKJeiADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5QgIQAVIScGFja2VkQXJiaXRyYXJ5RXh0ItQECg9Cb29sUGFyc2VUZXN0ZXISHgoWb3B0aW9uYWxfYm9vbF9sb3dmaWVsZBgBIAEoCBIfChZvcHRpb25hbF9ib29sX21pZGZpZWxkGOkHIAEoCBIfChVvcHRpb25hbF9ib29sX2hpZmllbGQYwYQ9IAEoCBIeChZyZXBlYXRlZF9ib29sX2xvd2ZpZWxkGAIgAygIEh8KFnJlcGVhdGVkX2Jvb2xfbWlkZmllbGQY6gcgAygIEh8KFXJlcGVhdGVkX2Jvb2xfaGlmaWVsZBjChD0gAygIEiAKFHBhY2tlZF9ib29sX2xvd2ZpZWxkGAMgAygIQgIQARIhChRwYWNrZWRfYm9vbF9taWRmaWVsZBjrByADKAhCAhABEiEKE3BhY2tlZF9ib29sX2hpZmllbGQYw4Q9IAMoCEICEAESEwoLb3RoZXJfZmllbGQYYyABKAUqCgiAiXoQgICAgAIyUAoRb3B0aW9uYWxfYm9vbF9leHQSIi5wcm90b2J1Zl91bml0dGVzdC5Cb29sUGFyc2VUZXN0ZXIYgIl6IAEoCFIPb3B0aW9uYWxCb29sRXh0MlAKEXJlcGVhdGVkX2Jvb2xfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuQm9vbFBhcnNlVGVzdGVyGIGJeiADKAhSD3JlcGVhdGVkQm9vbEV4dDJQCg9wYWNrZWRfYm9vbF9leHQSIi5wcm90b2J1Zl91bml0dGVzdC5Cb29sUGFyc2VUZXN0ZXIYgol6IAMoCEICEAFSDXBhY2tlZEJvb2xFeHQi5wQKEEludDMyUGFyc2VUZXN0ZXISHwoXb3B0aW9uYWxfaW50MzJfbG93ZmllbGQYASABKAUSIAoXb3B0aW9uYWxfaW50MzJfbWlkZmllbGQY6QcgASgFEiAKFm9wdGlvbmFsX2ludDMyX2hpZmllbGQYwYQ9IAEoBRIfChdyZXBlYXRlZF9pbnQzMl9sb3dmaWVsZBgCIAMoBRIgChdyZXBlYXRlZF9pbnQzMl9taWRmaWVsZBjqByADKAUSIAoWcmVwZWF0ZWRfaW50MzJfaGlmaWVsZBjChD0gAygFEiEKFXBhY2tlZF9pbnQzMl9sb3dmaWVsZBgDIAMoBUICEAESIgoVcGFja2VkX2ludDMyX21pZGZpZWxkGOsHIAMoBUICEAESIgoUcGFja2VkX2ludDMyX2hpZmllbGQYw4Q9IAMoBUICEAESEwoLb3RoZXJfZmllbGQYYyABKAUqCgiAiXoQgICAgAIyUwoSb3B0aW9uYWxfaW50MzJfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50MzJQYXJzZVRlc3RlchiAiXogASgFUhBvcHRpb25hbEludDMyRXh0MlMKEnJlcGVhdGVkX2ludDMyX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDMyUGFyc2VUZXN0ZXIYgYl6IAMoBVIQcmVwZWF0ZWRJbnQzMkV4dDJTChBwYWNrZWRfaW50MzJfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50MzJQYXJzZVRlc3RlchiCiXogAygFQgIQAVIOcGFja2VkSW50MzJFeHQi5wQKEEludDY0UGFyc2VUZXN0ZXISHwoXb3B0aW9uYWxfaW50NjRfbG93ZmllbGQYASABKAMSIAoXb3B0aW9uYWxfaW50NjRfbWlkZmllbGQY6QcgASgDEiAKFm9wdGlvbmFsX2ludDY0X2hpZmllbGQYwYQ9IAEoAxIfChdyZXBlYXRlZF9pbnQ2NF9sb3dmaWVsZBgCIAMoAxIgChdyZXBlYXRlZF9pbnQ2NF9taWRmaWVsZBjqByADKAMSIAoWcmVwZWF0ZWRfaW50NjRfaGlmaWVsZBjChD0gAygDEiEKFXBhY2tlZF9pbnQ2NF9sb3dmaWVsZBgDIAMoA0ICEAESIgoVcGFja2VkX2ludDY0X21pZGZpZWxkGOsHIAMoA0ICEAESIgoUcGFja2VkX2ludDY0X2hpZmllbGQYw4Q9IAMoA0ICEAESEwoLb3RoZXJfZmllbGQYYyABKAUqCgiAiXoQgICAgAIyUwoSb3B0aW9uYWxfaW50NjRfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50NjRQYXJzZVRlc3RlchiAiXogASgDUhBvcHRpb25hbEludDY0RXh0MlMKEnJlcGVhdGVkX2ludDY0X2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDY0UGFyc2VUZXN0ZXIYgYl6IAMoA1IQcmVwZWF0ZWRJbnQ2NEV4dDJTChBwYWNrZWRfaW50NjRfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50NjRQYXJzZVRlc3RlchiCiXogAygDQgIQAVIOcGFja2VkSW50NjRFeHQijAEKH0lubGluZWRTdHJpbmdJZHhSZWdyZXNzaW9uUHJvdG8SDAoEc3RyMRgBIAEoCRI/CgNzdWIYAiABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5JbmxpbmVkU3RyaW5nSWR4UmVncmVzc2lvblByb3RvEgwKBHN0cjIYAyABKAkSDAoEc3RyMxgEIAEoDCKfAwoRU3RyaW5nUGFyc2VUZXN0ZXISIAoYb3B0aW9uYWxfc3RyaW5nX2xvd2ZpZWxkGAEgASgJEiEKGG9wdGlvbmFsX3N0cmluZ19taWRmaWVsZBjpByABKAkSIQoXb3B0aW9uYWxfc3RyaW5nX2hpZmllbGQYwYQ9IAEoCRIgChhyZXBlYXRlZF9zdHJpbmdfbG93ZmllbGQYAiADKAkSIQoYcmVwZWF0ZWRfc3RyaW5nX21pZGZpZWxkGOoHIAMoCRIhChdyZXBlYXRlZF9zdHJpbmdfaGlmaWVsZBjChD0gAygJKgoIgIl6EICAgIACMlYKE29wdGlvbmFsX3N0cmluZ19leHQSJC5wcm90b2J1Zl91bml0dGVzdC5TdHJpbmdQYXJzZVRlc3RlchiAiXogASgJUhFvcHRpb25hbFN0cmluZ0V4dDJWChNyZXBlYXRlZF9zdHJpbmdfZXh0EiQucHJvdG9idWZfdW5pdHRlc3QuU3RyaW5nUGFyc2VUZXN0ZXIYgYl6IAMoCVIRcmVwZWF0ZWRTdHJpbmdFeHQiMwoNQmFkRmllbGROYW1lcxIVCg1PcHRpb25hbEludDMyGAEgASgFEgsKA2ZvchgCIAEoBSJ1ChpUZXN0TmVzdGVkTWVzc2FnZVJlZGFjdGlvbhIpCiFvcHRpb25hbF91bnJlZGFjdGVkX25lc3RlZF9zdHJpbmcYASABKAkSLAofb3B0aW9uYWxfcmVkYWN0ZWRfbmVzdGVkX3N0cmluZxgCIAEoCUIDgAEBIqkGCg5SZWRhY3RlZEZpZWxkcxIlChhvcHRpb25hbF9yZWRhY3RlZF9zdHJpbmcYASABKAlCA4ABARIiChpvcHRpb25hbF91bnJlZGFjdGVkX3N0cmluZxgCIAEoCRIlChhyZXBlYXRlZF9yZWRhY3RlZF9zdHJpbmcYAyADKAlCA4ABARIiChpyZXBlYXRlZF91bnJlZGFjdGVkX3N0cmluZxgEIAMoCRJVChlvcHRpb25hbF9yZWRhY3RlZF9tZXNzYWdlGAUgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb25CA4ABARJSChtvcHRpb25hbF91bnJlZGFjdGVkX21lc3NhZ2UYBiABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkTWVzc2FnZVJlZGFjdGlvbhJVChlyZXBlYXRlZF9yZWRhY3RlZF9tZXNzYWdlGAcgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb25CA4ABARJSChtyZXBlYXRlZF91bnJlZGFjdGVkX21lc3NhZ2UYCCADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkTWVzc2FnZVJlZGFjdGlvbhJaChNtYXBfcmVkYWN0ZWRfc3RyaW5nGAkgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuUmVkYWN0ZWRGaWVsZHMuTWFwUmVkYWN0ZWRTdHJpbmdFbnRyeUIDgAEBElkKFW1hcF91bnJlZGFjdGVkX3N0cmluZxgKIAMoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlJlZGFjdGVkRmllbGRzLk1hcFVucmVkYWN0ZWRTdHJpbmdFbnRyeRo4ChZNYXBSZWRhY3RlZFN0cmluZ0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaOgoYTWFwVW5yZWRhY3RlZFN0cmluZ0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiWwoIVGVzdENvcmQSHwoTb3B0aW9uYWxfYnl0ZXNfY29yZBgBIAEoDEICCAESLgobb3B0aW9uYWxfYnl0ZXNfY29yZF9kZWZhdWx0GAIgASgMOgVoZWxsb0ICCAEingEKGFRlc3RQYWNrZWRFbnVtU21hbGxSYW5nZRJICgR2YWxzGAEgAygOMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEVudW1TbWFsbFJhbmdlLk5lc3RlZEVudW1CAhABIjgKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAyKZBAoRRW51bXNGb3JCZW5jaG1hcmsijAEKBEZsYXQSBgoCQTAQABIGCgJBMRABEgYKAkEyEAISBgoCQTMQAxIGCgJBNBAEEgYKAkE1EAUSBgoCQTYQBhIGCgJBNxAHEgYKAkE4EAgSBgoCQTkQCRIHCgNBMTAQChIHCgNBMTEQCxIHCgNBMTIQDBIHCgNBMTMQDRIHCgNBMTQQDhIHCgNBMTUQDyKTAQoKQWxtb3N0RmxhdBIGCgJCMBAAEgYKAkIxEAESBgoCQjIQAhIGCgJCMxADEgYKAkI1EAUSBgoCQjYQBhIGCgJCNxAHEgYKAkI4EAgSBgoCQjkQCRIHCgNCMTEQCxIHCgNCMTIQDBIHCgNCMTMQDRIHCgNCMTQQDhIHCgNCMTUQDxIHCgNCMTcQERIHCgNCMTkQEyLeAQoGU3BhcnNlEgkKBEM1MzYQmAQSCgoFQzgzODcQw0ESCgoFQzk2NzMQyUsSCwoGQzEwMjg1EK1QEgsKBkMxMzMxOBCGaBILCgZDMTU5NjMQ23wSDAoGQzE2NDM5ELeAARIMCgZDMTgxOTcQlY4BEgwKBkMxOTQzMBDmlwESDAoGQzIwMzYxEImfARIMCgZDMjA3MDYQ4qEBEgwKBkMyMTA1MBC6pAESDAoGQzIxOTA2EJKrARIMCgZDMjcyNjUQgdUBEgwKBkMzMDEwORCd6wESDAoGQzMxNjcwELb3ASKdBwokVGVzdE1lc3NhZ2VXaXRoTWFueVJlcGVhdGVkUHRyRmllbGRzEhkKEXJlcGVhdGVkX3N0cmluZ18xGAEgAygJEhkKEXJlcGVhdGVkX3N0cmluZ18yGAIgAygJEhkKEXJlcGVhdGVkX3N0cmluZ18zGAMgAygJEhkKEXJlcGVhdGVkX3N0cmluZ180GAQgAygJEhkKEXJlcGVhdGVkX3N0cmluZ181GAUgAygJEhkKEXJlcGVhdGVkX3N0cmluZ182GAYgAygJEhkKEXJlcGVhdGVkX3N0cmluZ183GAcgAygJEhkKEXJlcGVhdGVkX3N0cmluZ184GAggAygJEhkKEXJlcGVhdGVkX3N0cmluZ185GAkgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xMBgKIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTEYCyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzEyGAwgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xMxgNIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTQYDiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE1GA8gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xNhgQIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTcYESADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE4GBIgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xORgTIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjAYFCADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzIxGBUgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yMhgWIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjMYFyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI0GBggAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yNRgZIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjYYGiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI3GBsgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yOBgcIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjkYHSADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzMwGB4gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18zMRgfIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMzIYICADKAkqUQoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYSDwoLRk9SRUlHTl9CQVgQICpBChZUZXN0UmVzZXJ2ZWRFbnVtRmllbGRzEgsKB1VOS05PV04QACIECAIQAiIECA8QDyIECAkQCyoDYmFyKgNiYXoqSwoUVGVzdEVudW1XaXRoRHVwVmFsdWUSCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqJAQoOVGVzdFNwYXJzZUVudW0SDAoIU1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIVCghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wESDAoIU1BBUlNFX0YQABIMCghTUEFSU0VfRxACKosPCg1WZXJ5TGFyZ2VFbnVtEhYKEkVOVU1fTEFCRUxfREVGQVVMVBAAEhAKDEVOVU1fTEFCRUxfMRABEhAKDEVOVU1fTEFCRUxfMhACEhAKDEVOVU1fTEFCRUxfMxADEhAKDEVOVU1fTEFCRUxfNBAEEhAKDEVOVU1fTEFCRUxfNRAFEhAKDEVOVU1fTEFCRUxfNhAGEhAKDEVOVU1fTEFCRUxfNxAHEhAKDEVOVU1fTEFCRUxfOBAIEhAKDEVOVU1fTEFCRUxfORAJEhEKDUVOVU1fTEFCRUxfMTAQChIRCg1FTlVNX0xBQkVMXzExEAsSEQoNRU5VTV9MQUJFTF8xMhAMEhEKDUVOVU1fTEFCRUxfMTMQDRIRCg1FTlVNX0xBQkVMXzE0EA4SEQoNRU5VTV9MQUJFTF8xNRAPEhEKDUVOVU1fTEFCRUxfMTYQEBIRCg1FTlVNX0xBQkVMXzE3EBESEQoNRU5VTV9MQUJFTF8xOBASEhEKDUVOVU1fTEFCRUxfMTkQExIRCg1FTlVNX0xBQkVMXzIwEBQSEQoNRU5VTV9MQUJFTF8yMRAVEhEKDUVOVU1fTEFCRUxfMjIQFhIRCg1FTlVNX0xBQkVMXzIzEBcSEQoNRU5VTV9MQUJFTF8yNBAYEhEKDUVOVU1fTEFCRUxfMjUQGRIRCg1FTlVNX0xBQkVMXzI2EBoSEQoNRU5VTV9MQUJFTF8yNxAbEhEKDUVOVU1fTEFCRUxfMjgQHBIRCg1FTlVNX0xBQkVMXzI5EB0SEQoNRU5VTV9MQUJFTF8zMBAeEhEKDUVOVU1fTEFCRUxfMzEQHxIRCg1FTlVNX0xBQkVMXzMyECASEQoNRU5VTV9MQUJFTF8zMxAhEhEKDUVOVU1fTEFCRUxfMzQQIhIRCg1FTlVNX0xBQkVMXzM1ECMSEQoNRU5VTV9MQUJFTF8zNhAkEhEKDUVOVU1fTEFCRUxfMzcQJRIRCg1FTlVNX0xBQkVMXzM4ECYSEQoNRU5VTV9MQUJFTF8zORAnEhEKDUVOVU1fTEFCRUxfNDAQKBIRCg1FTlVNX0xBQkVMXzQxECkSEQoNRU5VTV9MQUJFTF80MhAqEhEKDUVOVU1fTEFCRUxfNDMQKxIRCg1FTlVNX0xBQkVMXzQ0ECwSEQoNRU5VTV9MQUJFTF80NRAtEhEKDUVOVU1fTEFCRUxfNDYQLhIRCg1FTlVNX0xBQkVMXzQ3EC8SEQoNRU5VTV9MQUJFTF80OBAwEhEKDUVOVU1fTEFCRUxfNDkQMRIRCg1FTlVNX0xBQkVMXzUwEDISEQoNRU5VTV9MQUJFTF81MRAzEhEKDUVOVU1fTEFCRUxfNTIQNBIRCg1FTlVNX0xBQkVMXzUzEDUSEQoNRU5VTV9MQUJFTF81NBA2EhEKDUVOVU1fTEFCRUxfNTUQNxIRCg1FTlVNX0xBQkVMXzU2EDgSEQoNRU5VTV9MQUJFTF81NxA5EhEKDUVOVU1fTEFCRUxfNTgQOhIRCg1FTlVNX0xBQkVMXzU5EDsSEQoNRU5VTV9MQUJFTF82MBA8EhEKDUVOVU1fTEFCRUxfNjEQPRIRCg1FTlVNX0xBQkVMXzYyED4SEQoNRU5VTV9MQUJFTF82MxA/EhEKDUVOVU1fTEFCRUxfNjQQQBIRCg1FTlVNX0xBQkVMXzY1EEESEQoNRU5VTV9MQUJFTF82NhBCEhEKDUVOVU1fTEFCRUxfNjcQQxIRCg1FTlVNX0xBQkVMXzY4EEQSEQoNRU5VTV9MQUJFTF82ORBFEhEKDUVOVU1fTEFCRUxfNzAQRhIRCg1FTlVNX0xBQkVMXzcxEEcSEQoNRU5VTV9MQUJFTF83MhBIEhEKDUVOVU1fTEFCRUxfNzMQSRIRCg1FTlVNX0xBQkVMXzc0EEoSEQoNRU5VTV9MQUJFTF83NRBLEhEKDUVOVU1fTEFCRUxfNzYQTBIRCg1FTlVNX0xBQkVMXzc3EE0SEQoNRU5VTV9MQUJFTF83OBBOEhEKDUVOVU1fTEFCRUxfNzkQTxIRCg1FTlVNX0xBQkVMXzgwEFASEQoNRU5VTV9MQUJFTF84MRBREhEKDUVOVU1fTEFCRUxfODIQUhIRCg1FTlVNX0xBQkVMXzgzEFMSEQoNRU5VTV9MQUJFTF84NBBUEhEKDUVOVU1fTEFCRUxfODUQVRIRCg1FTlVNX0xBQkVMXzg2EFYSEQoNRU5VTV9MQUJFTF84NxBXEhEKDUVOVU1fTEFCRUxfODgQWBIRCg1FTlVNX0xBQkVMXzg5EFkSEQoNRU5VTV9MQUJFTF85MBBaEhEKDUVOVU1fTEFCRUxfOTEQWxIRCg1FTlVNX0xBQkVMXzkyEFwSEQoNRU5VTV9MQUJFTF85MxBdEhEKDUVOVU1fTEFCRUxfOTQQXhIRCg1FTlVNX0xBQkVMXzk1EF8SEQoNRU5VTV9MQUJFTF85NhBgEhEKDUVOVU1fTEFCRUxfOTcQYRIRCg1FTlVNX0xBQkVMXzk4EGISEQoNRU5VTV9MQUJFTF85ORBjEhIKDkVOVU1fTEFCRUxfMTAwEGQymQEKC1Rlc3RTZXJ2aWNlEkQKA0ZvbxIdLnByb3RvYnVmX3VuaXR0ZXN0LkZvb1JlcXVlc3QaHi5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXNwb25zZRJECgNCYXISHS5wcm90b2J1Zl91bml0dGVzdC5CYXJSZXF1ZXN0Gh4ucHJvdG9idWZfdW5pdHRlc3QuQmFyUmVzcG9uc2U6XgoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYASABKAVSFm9wdGlvbmFsSW50MzJFeHRlbnNpb246XgoYb3B0aW9uYWxfaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYAiABKANSFm9wdGlvbmFsSW50NjRFeHRlbnNpb246YAoZb3B0aW9uYWxfdWludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAMgASgNUhdvcHRpb25hbFVpbnQzMkV4dGVuc2lvbjpgChlvcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYBCABKARSF29wdGlvbmFsVWludDY0RXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3NpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgFIAEoEVIXb3B0aW9uYWxTaW50MzJFeHRlbnNpb246YAoZb3B0aW9uYWxfc2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAYgASgSUhdvcHRpb25hbFNpbnQ2NEV4dGVuc2lvbjpiChpvcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAcgASgHUhhvcHRpb25hbEZpeGVkMzJFeHRlbnNpb246Ygoab3B0aW9uYWxfZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgIIAEoBlIYb3B0aW9uYWxGaXhlZDY0RXh0ZW5zaW9uOmQKG29wdGlvbmFsX3NmaXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAkgASgPUhlvcHRpb25hbFNmaXhlZDMyRXh0ZW5zaW9uOmQKG29wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAogASgQUhlvcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uOl4KGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAsgASgCUhZvcHRpb25hbEZsb2F0RXh0ZW5zaW9uOmAKGW9wdGlvbmFsX2RvdWJsZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoAVIXb3B0aW9uYWxEb3VibGVFeHRlbnNpb246XAoXb3B0aW9uYWxfYm9vbF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgNIAEoCFIVb3B0aW9uYWxCb29sRXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgOIAEoCVIXb3B0aW9uYWxTdHJpbmdFeHRlbnNpb246XgoYb3B0aW9uYWxfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDyABKAxSFm9wdGlvbmFsQnl0ZXNFeHRlbnNpb246iQEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoyKi5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjqeAQohb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIeb3B0aW9uYWxOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOpQBCiJvcHRpb25hbF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYEyABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZVIfb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqYAQohb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZVIeb3B0aW9uYWxJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOpUBCh5vcHRpb25hbF9uZXN0ZWRfZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgVIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtvcHRpb25hbE5lc3RlZEVudW1FeHRlbnNpb246iwEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uOo8BCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhtvcHRpb25hbEltcG9ydEVudW1FeHRlbnNpb246bwofb3B0aW9uYWxfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBggASgJQgIIAlIcb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbjpcChdvcHRpb25hbF9jb3JkX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBkgASgJUhVvcHRpb25hbENvcmRFeHRlbnNpb246qwEKKG9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUiRvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2VFeHRlbnNpb246ngEKH29wdGlvbmFsX2xhenlfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgbIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIcb3B0aW9uYWxMYXp5TWVzc2FnZUV4dGVuc2lvbjqzAQoqb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYHCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICeAFSJm9wdGlvbmFsVW52ZXJpZmllZExhenlNZXNzYWdlRXh0ZW5zaW9uOl4KGHJlcGVhdGVkX2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGB8gAygFUhZyZXBlYXRlZEludDMyRXh0ZW5zaW9uOl4KGHJlcGVhdGVkX2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCAgAygDUhZyZXBlYXRlZEludDY0RXh0ZW5zaW9uOmAKGXJlcGVhdGVkX3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxghIAMoDVIXcmVwZWF0ZWRVaW50MzJFeHRlbnNpb246YAoZcmVwZWF0ZWRfdWludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCIgAygEUhdyZXBlYXRlZFVpbnQ2NEV4dGVuc2lvbjpgChlyZXBlYXRlZF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYIyADKBFSF3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uOmAKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgkIAMoElIXcmVwZWF0ZWRTaW50NjRFeHRlbnNpb246YgoacmVwZWF0ZWRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxglIAMoB1IYcmVwZWF0ZWRGaXhlZDMyRXh0ZW5zaW9uOmIKGnJlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJiADKAZSGHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbjpkChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMoD1IZcmVwZWF0ZWRTZml4ZWQzMkV4dGVuc2lvbjpkChtyZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgoIAMoEFIZcmVwZWF0ZWRTZml4ZWQ2NEV4dGVuc2lvbjpeChhyZXBlYXRlZF9mbG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgpIAMoAlIWcmVwZWF0ZWRGbG9hdEV4dGVuc2lvbjpgChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKiADKAFSF3JlcGVhdGVkRG91YmxlRXh0ZW5zaW9uOlwKF3JlcGVhdGVkX2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKyADKAhSFXJlcGVhdGVkQm9vbEV4dGVuc2lvbjpgChlyZXBlYXRlZF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYLCADKAlSF3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uOl4KGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGC0gAygMUhZyZXBlYXRlZEJ5dGVzRXh0ZW5zaW9uOokBChdyZXBlYXRlZGdyb3VwX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGC4gAygKMioucHJvdG9idWZfdW5pdHRlc3QuUmVwZWF0ZWRHcm91cF9leHRlbnNpb25SFnJlcGVhdGVkZ3JvdXBFeHRlbnNpb246ngEKIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHnJlcGVhdGVkTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqUAQoicmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VSH3JlcGVhdGVkRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246mAEKIXJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSHnJlcGVhdGVkSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqVAQoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYMyADKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbcmVwZWF0ZWROZXN0ZWRFbnVtRXh0ZW5zaW9uOosBCh9yZXBlYXRlZF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bVIccmVwZWF0ZWRGb3JlaWduRW51bUV4dGVuc2lvbjqPAQoecmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIbcmVwZWF0ZWRJbXBvcnRFbnVtRXh0ZW5zaW9uOm8KH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg2IAMoCUICCAJSHHJlcGVhdGVkU3RyaW5nUGllY2VFeHRlbnNpb246XAoXcmVwZWF0ZWRfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg3IAMoCVIVcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uOp4BCh9yZXBlYXRlZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSHHJlcGVhdGVkTGF6eU1lc3NhZ2VFeHRlbnNpb246YAoXZGVmYXVsdF9pbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg9IAEoBToCNDFSFWRlZmF1bHRJbnQzMkV4dGVuc2lvbjpgChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MlIVZGVmYXVsdEludDY0RXh0ZW5zaW9uOmIKGGRlZmF1bHRfdWludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD8gASgNOgI0M1IWZGVmYXVsdFVpbnQzMkV4dGVuc2lvbjpiChhkZWZhdWx0X3VpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDRSFmRlZmF1bHRVaW50NjRFeHRlbnNpb246YwoYZGVmYXVsdF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQSABKBE6Ay00NVIWZGVmYXVsdFNpbnQzMkV4dGVuc2lvbjpiChhkZWZhdWx0X3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhCIAEoEjoCNDZSFmRlZmF1bHRTaW50NjRFeHRlbnNpb246ZAoZZGVmYXVsdF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEMgASgHOgI0N1IXZGVmYXVsdEZpeGVkMzJFeHRlbnNpb246ZAoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEQgASgGOgI0OFIXZGVmYXVsdEZpeGVkNjRFeHRlbnNpb246ZgoaZGVmYXVsdF9zZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhFIAEoDzoCNDlSGGRlZmF1bHRTZml4ZWQzMkV4dGVuc2lvbjpnChpkZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTBSGGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbjpiChdkZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEcgASgCOgQ1MS41UhVkZWZhdWx0RmxvYXRFeHRlbnNpb246ZQoYZGVmYXVsdF9kb3VibGVfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSCABKAE6BTUyMDAwUhZkZWZhdWx0RG91YmxlRXh0ZW5zaW9uOmAKFmRlZmF1bHRfYm9vbF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhJIAEoCDoEdHJ1ZVIUZGVmYXVsdEJvb2xFeHRlbnNpb246ZQoYZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSiABKAk6BWhlbGxvUhZkZWZhdWx0U3RyaW5nRXh0ZW5zaW9uOmMKF2RlZmF1bHRfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSyABKAw6BXdvcmxkUhVkZWZhdWx0Qnl0ZXNFeHRlbnNpb246mAEKHWRlZmF1bHRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYUSABKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhpkZWZhdWx0TmVzdGVkRW51bUV4dGVuc2lvbjqWAQoeZGVmYXVsdF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYUiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSG2RlZmF1bHRGb3JlaWduRW51bUV4dGVuc2lvbjqZAQodZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSUhpkZWZhdWx0SW1wb3J0RW51bUV4dGVuc2lvbjpyCh5kZWZhdWx0X3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAlIbZGVmYXVsdFN0cmluZ1BpZWNlRXh0ZW5zaW9uOl8KFmRlZmF1bHRfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhVIAEoCToDMTIzUhRkZWZhdWx0Q29yZEV4dGVuc2lvbjpaChZvbmVvZl91aW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYbyABKA1SFG9uZW9mVWludDMyRXh0ZW5zaW9uOpgBCh5vbmVvZl9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhtvbmVvZk5lc3RlZE1lc3NhZ2VFeHRlbnNpb246WgoWb25lb2Zfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGHEgASgJUhRvbmVvZlN0cmluZ0V4dGVuc2lvbjpYChVvbmVvZl9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDFITb25lb2ZCeXRlc0V4dGVuc2lvbjpVChNteV9leHRlbnNpb25fc3RyaW5nEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGDIgASgJUhFteUV4dGVuc2lvblN0cmluZzpPChBteV9leHRlbnNpb25faW50EiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGAUgASgFUg5teUV4dGVuc2lvbkludDphChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhABUhRwYWNrZWRJbnQzMkV4dGVuc2lvbjphChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhABUhRwYWNrZWRJbnQ2NEV4dGVuc2lvbjpjChdwYWNrZWRfdWludDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAVIVcGFja2VkVWludDMyRXh0ZW5zaW9uOmMKF3BhY2tlZF91aW50NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABUhVwYWNrZWRVaW50NjRFeHRlbnNpb246YwoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEAFSFXBhY2tlZFNpbnQzMkV4dGVuc2lvbjpjChdwYWNrZWRfc2ludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAVIVcGFja2VkU2ludDY0RXh0ZW5zaW9uOmUKGHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAVIWcGFja2VkRml4ZWQzMkV4dGVuc2lvbjplChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEAFSFnBhY2tlZEZpeGVkNjRFeHRlbnNpb246ZwoZcGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAVIXcGFja2VkU2ZpeGVkMzJFeHRlbnNpb246ZwoZcGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAVIXcGFja2VkU2ZpeGVkNjRFeHRlbnNpb246YQoWcGFja2VkX2Zsb2F0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGQgAygCQgIQAVIUcGFja2VkRmxvYXRFeHRlbnNpb246YwoXcGFja2VkX2RvdWJsZV9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEAFSFXBhY2tlZERvdWJsZUV4dGVuc2lvbjpfChVwYWNrZWRfYm9vbF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAFSE3BhY2tlZEJvb2xFeHRlbnNpb246fwoVcGFja2VkX2VudW1fZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUICEAFSE3BhY2tlZEVudW1FeHRlbnNpb246ZwoYdW5wYWNrZWRfaW50MzJfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhaIAMoBUICEABSFnVucGFja2VkSW50MzJFeHRlbnNpb246ZwoYdW5wYWNrZWRfaW50NjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEABSFnVucGFja2VkSW50NjRFeHRlbnNpb246aQoZdW5wYWNrZWRfdWludDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhAAUhd1bnBhY2tlZFVpbnQzMkV4dGVuc2lvbjppChl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhdIAMoBEICEABSF3VucGFja2VkVWludDY0RXh0ZW5zaW9uOmkKGXVucGFja2VkX3NpbnQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAFIXdW5wYWNrZWRTaW50MzJFeHRlbnNpb246aQoZdW5wYWNrZWRfc2ludDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhAAUhd1bnBhY2tlZFNpbnQ2NEV4dGVuc2lvbjprChp1bnBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYCADKAdCAhAAUhh1bnBhY2tlZEZpeGVkMzJFeHRlbnNpb246awoadW5wYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAFIYdW5wYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOm0KG3VucGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAAUhl1bnBhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOm0KG3VucGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYyADKBBCAhAAUhl1bnBhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmcKGHVucGFja2VkX2Zsb2F0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhAAUhZ1bnBhY2tlZEZsb2F0RXh0ZW5zaW9uOmkKGXVucGFja2VkX2RvdWJsZV9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAFIXdW5wYWNrZWREb3VibGVFeHRlbnNpb246ZQoXdW5wYWNrZWRfYm9vbF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGYgAygIQgIQAFIVdW5wYWNrZWRCb29sRXh0ZW5zaW9uOoUBChd1bnBhY2tlZF9lbnVtX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUICEABSFXVucGFja2VkRW51bUV4dGVuc2lvbjpyCg50ZXN0X2FsbF90eXBlcxInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RIdWdlRmllbGROdW1iZXJzGOCq//8BIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc1IMdGVzdEFsbFR5cGVzOn0KJXRlc3RfZXh0ZW5zaW9uX2luc2lkZV90YWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUYBSABKAVSIXRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZUV4dGVuc2lvbjqpAQoFaW5uZXISWC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwLkxheWVyMlJlcGVhdGVkR3JvdXAYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25Jbm5lckV4dGVuc2lvblIFaW5uZXJCHUINVW5pdHRlc3RQcm90b0gBgAEBiAEBkAEB+AEB", [fileDesc_google_protobuf_unittest_import]); // Describes the message protobuf_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. export const TestAllTypesDesc = /*@__PURE__*/ diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_lite_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_lite_pb.d.ts deleted file mode 100644 index 4f661e216..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_lite_pb.d.ts +++ /dev/null @@ -1,591 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_proto3_arena_lite.proto (package proto3_arena_lite_unittest, syntax proto3) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; -import type { ImportMessage } from "./unittest_import_pb.js"; -import type { PublicImportMessage } from "./unittest_import_public_pb.js"; - -export declare const fileDesc_google_protobuf_unittest_proto3_arena_lite: GenDescFile; - -/** - * This proto includes every type of field in both singular and repeated - * forms. - * - * @generated from message proto3_arena_lite_unittest.TestAllTypes - */ -export declare type TestAllTypes = Message<"proto3_arena_lite_unittest.TestAllTypes"> & { - /** - * Singular - * - * @generated from field: int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_arena_lite_unittest.ForeignMessage optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_import_message = 20; - */ - optionalImportMessage?: ImportMessage; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypes_NestedEnum; - - /** - * @generated from field: proto3_arena_lite_unittest.ForeignEnum optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnum; - - /** - * @generated from field: string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessage; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypes_NestedMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.ForeignMessage repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessage[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessage[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.ForeignEnum repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnum[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from oneof proto3_arena_lite_unittest.TestAllTypes.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypes_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message proto3_arena_lite_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export declare const TestAllTypesDesc: GenDescMessage; - -/** - * @generated from message proto3_arena_lite_unittest.TestAllTypes.NestedMessage - */ -export declare type TestAllTypes_NestedMessage = Message<"proto3_arena_lite_unittest.TestAllTypes.NestedMessage"> & { - /** - * The field name "b" fails to compile in proto1 because it conflicts with - * a local variable named "b" in one of the generated methods. Doh. - * This file needs to compile in proto1 to test backwards-compatibility. - * - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_arena_lite_unittest.TestAllTypes.NestedMessage. Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export declare const TestAllTypes_NestedMessageDesc: GenDescMessage; - -/** - * @generated from enum proto3_arena_lite_unittest.TestAllTypes.NestedEnum - */ -export enum TestAllTypes_NestedEnum { - /** - * @generated from enum value: ZERO = 0; - */ - ZERO = 0, - - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * Intentionally negative. - * - * @generated from enum value: NEG = -1; - */ - NEG = -1, -} - -// Describes the enum proto3_arena_lite_unittest.TestAllTypes.NestedEnum. -export declare const TestAllTypes_NestedEnumDesc: GenDescEnum; - -/** - * @generated from message proto3_arena_lite_unittest.TestPackedTypes - */ -export declare type TestPackedTypes = Message<"proto3_arena_lite_unittest.TestPackedTypes"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.ForeignEnum packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnum[]; -}; - -// Describes the message proto3_arena_lite_unittest.TestPackedTypes. Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export declare const TestPackedTypesDesc: GenDescMessage; - -/** - * Explicitly set packed to false - * - * @generated from message proto3_arena_lite_unittest.TestUnpackedTypes - */ -export declare type TestUnpackedTypes = Message<"proto3_arena_lite_unittest.TestUnpackedTypes"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 1 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 2 [packed = false]; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 3 [packed = false]; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 4 [packed = false]; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 5 [packed = false]; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 6 [packed = false]; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 7 [packed = false]; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 8 [packed = false]; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 9 [packed = false]; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 10 [packed = false]; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 11 [packed = false]; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 12 [packed = false]; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 13 [packed = false]; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false]; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; -}; - -// Describes the message proto3_arena_lite_unittest.TestUnpackedTypes. Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export declare const TestUnpackedTypesDesc: GenDescMessage; - -/** - * This proto includes a recursively nested message. - * - * @generated from message proto3_arena_lite_unittest.NestedTestAllTypes - */ -export declare type NestedTestAllTypes = Message<"proto3_arena_lite_unittest.NestedTestAllTypes"> & { - /** - * @generated from field: proto3_arena_lite_unittest.NestedTestAllTypes child = 1; - */ - child?: NestedTestAllTypes; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes payload = 2; - */ - payload?: TestAllTypes; -}; - -// Describes the message proto3_arena_lite_unittest.NestedTestAllTypes. Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export declare const NestedTestAllTypesDesc: GenDescMessage; - -/** - * Define these after TestAllTypes to make sure the compiler can handle - * that. - * - * @generated from message proto3_arena_lite_unittest.ForeignMessage - */ -export declare type ForeignMessage = Message<"proto3_arena_lite_unittest.ForeignMessage"> & { - /** - * @generated from field: int32 c = 1; - */ - c: number; -}; - -// Describes the message proto3_arena_lite_unittest.ForeignMessage. Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export declare const ForeignMessageDesc: GenDescMessage; - -/** - * TestEmptyMessage is used to test behavior of unknown fields. - * - * @generated from message proto3_arena_lite_unittest.TestEmptyMessage - */ -export declare type TestEmptyMessage = Message<"proto3_arena_lite_unittest.TestEmptyMessage"> & { -}; - -// Describes the message proto3_arena_lite_unittest.TestEmptyMessage. Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export declare const TestEmptyMessageDesc: GenDescMessage; - -/** - * @generated from enum proto3_arena_lite_unittest.ForeignEnum - */ -export enum ForeignEnum { - /** - * @generated from enum value: FOREIGN_ZERO = 0; - */ - FOREIGN_ZERO = 0, - - /** - * @generated from enum value: FOREIGN_FOO = 4; - */ - FOREIGN_FOO = 4, - - /** - * @generated from enum value: FOREIGN_BAR = 5; - */ - FOREIGN_BAR = 5, - - /** - * @generated from enum value: FOREIGN_BAZ = 6; - */ - FOREIGN_BAZ = 6, -} - -// Describes the enum proto3_arena_lite_unittest.ForeignEnum. -export declare const ForeignEnumDesc: GenDescEnum; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_lite_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_lite_pb.js deleted file mode 100644 index 1a1cf735c..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_lite_pb.js +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_proto3_arena_lite.proto (package proto3_arena_lite_unittest, syntax proto3) -/* eslint-disable */ - -import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; - -export const fileDesc_google_protobuf_unittest_proto3_arena_lite = /*@__PURE__*/ - fileDesc("CjBnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zX2FyZW5hX2xpdGUucHJvdG8SGnByb3RvM19hcmVuYV9saXRlX3VuaXR0ZXN0Iq0RCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSVwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJMChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyKi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlElEKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjMucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SRgoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMicucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJZChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSVwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJMChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyKi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlElEKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjMucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SRgoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMicucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJZChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASVgoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBSJDCgpOZXN0ZWRFbnVtEggKBFpFUk8QABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCKzAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARJACgtwYWNrZWRfZW51bRhnIAMoDjInLnByb3RvM19hcmVuYV9saXRlX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLkAwoRVGVzdFVucGFja2VkVHlwZXMSGgoOcmVwZWF0ZWRfaW50MzIYASADKAVCAhAAEhoKDnJlcGVhdGVkX2ludDY0GAIgAygDQgIQABIbCg9yZXBlYXRlZF91aW50MzIYAyADKA1CAhAAEhsKD3JlcGVhdGVkX3VpbnQ2NBgEIAMoBEICEAASGwoPcmVwZWF0ZWRfc2ludDMyGAUgAygRQgIQABIbCg9yZXBlYXRlZF9zaW50NjQYBiADKBJCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkMzIYByADKAdCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkNjQYCCADKAZCAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDMyGAkgAygPQgIQABIdChFyZXBlYXRlZF9zZml4ZWQ2NBgKIAMoEEICEAASGgoOcmVwZWF0ZWRfZmxvYXQYCyADKAJCAhAAEhsKD3JlcGVhdGVkX2RvdWJsZRgMIAMoAUICEAASGQoNcmVwZWF0ZWRfYm9vbBgNIAMoCEICEAASVQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YDiADKA4yMy5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAijgEKEk5lc3RlZFRlc3RBbGxUeXBlcxI9CgVjaGlsZBgBIAEoCzIuLnByb3RvM19hcmVuYV9saXRlX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxI5CgdwYXlsb2FkGAIgASgLMigucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSpSCgtGb3JlaWduRW51bRIQCgxGT1JFSUdOX1pFUk8QABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBkIFSAP4AQFiBnByb3RvMw", [fileDesc_google_protobuf_unittest_import]); - -// Describes the message proto3_arena_lite_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export const TestAllTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0); - -// Describes the message proto3_arena_lite_unittest.TestAllTypes.NestedMessage. Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export const TestAllTypes_NestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0, 0); - -// Describes the enum proto3_arena_lite_unittest.TestAllTypes.NestedEnum. -export const TestAllTypes_NestedEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0, 0); - -/** - * @generated from enum proto3_arena_lite_unittest.TestAllTypes.NestedEnum - */ -export const TestAllTypes_NestedEnum = /*@__PURE__*/ - tsEnum(TestAllTypes_NestedEnumDesc); - -// Describes the message proto3_arena_lite_unittest.TestPackedTypes. Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export const TestPackedTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 1); - -// Describes the message proto3_arena_lite_unittest.TestUnpackedTypes. Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export const TestUnpackedTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 2); - -// Describes the message proto3_arena_lite_unittest.NestedTestAllTypes. Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export const NestedTestAllTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 3); - -// Describes the message proto3_arena_lite_unittest.ForeignMessage. Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export const ForeignMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 4); - -// Describes the message proto3_arena_lite_unittest.TestEmptyMessage. Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export const TestEmptyMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 5); - -// Describes the enum proto3_arena_lite_unittest.ForeignEnum. -export const ForeignEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0); - -/** - * @generated from enum proto3_arena_lite_unittest.ForeignEnum - */ -export const ForeignEnum = /*@__PURE__*/ - tsEnum(ForeignEnumDesc); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_pb.d.ts deleted file mode 100644 index d21715a33..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_pb.d.ts +++ /dev/null @@ -1,725 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_proto3_arena.proto (package proto3_arena_unittest, syntax proto3) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; -import type { ImportMessage } from "./unittest_import_pb.js"; -import type { PublicImportMessage } from "./unittest_import_public_pb.js"; - -export declare const fileDesc_google_protobuf_unittest_proto3_arena: GenDescFile; - -/** - * This proto includes every type of field in both singular and repeated - * forms. - * - * @generated from message proto3_arena_unittest.TestAllTypes - */ -export declare type TestAllTypes = Message<"proto3_arena_unittest.TestAllTypes"> & { - /** - * Singular - * - * @generated from field: int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_arena_unittest.ForeignMessage optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_import_message = 20; - */ - optionalImportMessage?: ImportMessage; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypes_NestedEnum; - - /** - * @generated from field: proto3_arena_unittest.ForeignEnum optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnum; - - /** - * @generated from field: string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessage; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage optional_unverified_lazy_message = 28; - */ - optionalUnverifiedLazyMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_lazy_import_message = 115; - */ - optionalLazyImportMessage?: ImportMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * Optional - * - * @generated from field: optional int32 proto3_optional_int32 = 116; - */ - proto3OptionalInt32?: number; - - /** - * @generated from field: optional int64 proto3_optional_int64 = 117; - */ - proto3OptionalInt64?: bigint; - - /** - * @generated from field: optional uint32 proto3_optional_uint32 = 118; - */ - proto3OptionalUint32?: number; - - /** - * @generated from field: optional uint64 proto3_optional_uint64 = 119; - */ - proto3OptionalUint64?: bigint; - - /** - * @generated from field: optional sint32 proto3_optional_sint32 = 120; - */ - proto3OptionalSint32?: number; - - /** - * @generated from field: optional sint64 proto3_optional_sint64 = 121; - */ - proto3OptionalSint64?: bigint; - - /** - * @generated from field: optional fixed32 proto3_optional_fixed32 = 122; - */ - proto3OptionalFixed32?: number; - - /** - * @generated from field: optional fixed64 proto3_optional_fixed64 = 123; - */ - proto3OptionalFixed64?: bigint; - - /** - * @generated from field: optional sfixed32 proto3_optional_sfixed32 = 124; - */ - proto3OptionalSfixed32?: number; - - /** - * @generated from field: optional sfixed64 proto3_optional_sfixed64 = 125; - */ - proto3OptionalSfixed64?: bigint; - - /** - * @generated from field: optional float proto3_optional_float = 126; - */ - proto3OptionalFloat?: number; - - /** - * @generated from field: optional double proto3_optional_double = 127; - */ - proto3OptionalDouble?: number; - - /** - * @generated from field: optional bool proto3_optional_bool = 128; - */ - proto3OptionalBool?: boolean; - - /** - * @generated from field: optional string proto3_optional_string = 129; - */ - proto3OptionalString?: string; - - /** - * @generated from field: optional bytes proto3_optional_bytes = 130; - */ - proto3OptionalBytes?: Uint8Array; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from field: repeated proto3_arena_unittest.ForeignMessage repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessage[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessage[]; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; - - /** - * @generated from field: repeated proto3_arena_unittest.ForeignEnum repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnum[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from oneof proto3_arena_unittest.TestAllTypes.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypes_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message proto3_arena_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export declare const TestAllTypesDesc: GenDescMessage; - -/** - * @generated from message proto3_arena_unittest.TestAllTypes.NestedMessage - */ -export declare type TestAllTypes_NestedMessage = Message<"proto3_arena_unittest.TestAllTypes.NestedMessage"> & { - /** - * The field name "b" fails to compile in proto1 because it conflicts with - * a local variable named "b" in one of the generated methods. Doh. - * This file needs to compile in proto1 to test backwards-compatibility. - * - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_arena_unittest.TestAllTypes.NestedMessage. Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export declare const TestAllTypes_NestedMessageDesc: GenDescMessage; - -/** - * @generated from enum proto3_arena_unittest.TestAllTypes.NestedEnum - */ -export enum TestAllTypes_NestedEnum { - /** - * @generated from enum value: ZERO = 0; - */ - ZERO = 0, - - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * Intentionally negative. - * - * @generated from enum value: NEG = -1; - */ - NEG = -1, -} - -// Describes the enum proto3_arena_unittest.TestAllTypes.NestedEnum. -export declare const TestAllTypes_NestedEnumDesc: GenDescEnum; - -/** - * @generated from message proto3_arena_unittest.TestPackedTypes - */ -export declare type TestPackedTypes = Message<"proto3_arena_unittest.TestPackedTypes"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_unittest.ForeignEnum packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnum[]; -}; - -// Describes the message proto3_arena_unittest.TestPackedTypes. Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export declare const TestPackedTypesDesc: GenDescMessage; - -/** - * Explicitly set packed to false - * - * @generated from message proto3_arena_unittest.TestUnpackedTypes - */ -export declare type TestUnpackedTypes = Message<"proto3_arena_unittest.TestUnpackedTypes"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 1 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 2 [packed = false]; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 3 [packed = false]; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 4 [packed = false]; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 5 [packed = false]; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 6 [packed = false]; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 7 [packed = false]; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 8 [packed = false]; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 9 [packed = false]; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 10 [packed = false]; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 11 [packed = false]; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 12 [packed = false]; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 13 [packed = false]; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false]; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; -}; - -// Describes the message proto3_arena_unittest.TestUnpackedTypes. Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export declare const TestUnpackedTypesDesc: GenDescMessage; - -/** - * This proto includes a recursively nested message. - * - * @generated from message proto3_arena_unittest.NestedTestAllTypes - */ -export declare type NestedTestAllTypes = Message<"proto3_arena_unittest.NestedTestAllTypes"> & { - /** - * @generated from field: proto3_arena_unittest.NestedTestAllTypes child = 1; - */ - child?: NestedTestAllTypes; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes payload = 2; - */ - payload?: TestAllTypes; - - /** - * @generated from field: repeated proto3_arena_unittest.NestedTestAllTypes repeated_child = 3; - */ - repeatedChild: NestedTestAllTypes[]; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes lazy_payload = 4; - */ - lazyPayload?: TestAllTypes; -}; - -// Describes the message proto3_arena_unittest.NestedTestAllTypes. Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export declare const NestedTestAllTypesDesc: GenDescMessage; - -/** - * Define these after TestAllTypes to make sure the compiler can handle - * that. - * - * @generated from message proto3_arena_unittest.ForeignMessage - */ -export declare type ForeignMessage = Message<"proto3_arena_unittest.ForeignMessage"> & { - /** - * @generated from field: int32 c = 1; - */ - c: number; -}; - -// Describes the message proto3_arena_unittest.ForeignMessage. Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export declare const ForeignMessageDesc: GenDescMessage; - -/** - * TestEmptyMessage is used to test behavior of unknown fields. - * - * @generated from message proto3_arena_unittest.TestEmptyMessage - */ -export declare type TestEmptyMessage = Message<"proto3_arena_unittest.TestEmptyMessage"> & { -}; - -// Describes the message proto3_arena_unittest.TestEmptyMessage. Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export declare const TestEmptyMessageDesc: GenDescMessage; - -/** - * Needed for a Python test. - * - * @generated from message proto3_arena_unittest.TestPickleNestedMessage - */ -export declare type TestPickleNestedMessage = Message<"proto3_arena_unittest.TestPickleNestedMessage"> & { -}; - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage. Use `create(TestPickleNestedMessageDesc)` to create a new TestPickleNestedMessage. -export declare const TestPickleNestedMessageDesc: GenDescMessage; - -/** - * @generated from message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage - */ -export declare type TestPickleNestedMessage_NestedMessage = Message<"proto3_arena_unittest.TestPickleNestedMessage.NestedMessage"> & { - /** - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage. Use `create(TestPickleNestedMessage_NestedMessageDesc)` to create a new TestPickleNestedMessage_NestedMessage. -export declare const TestPickleNestedMessage_NestedMessageDesc: GenDescMessage; - -/** - * @generated from message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage.NestedNestedMessage - */ -export declare type TestPickleNestedMessage_NestedMessage_NestedNestedMessage = Message<"proto3_arena_unittest.TestPickleNestedMessage.NestedMessage.NestedNestedMessage"> & { - /** - * @generated from field: int32 cc = 1; - */ - cc: number; -}; - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage.NestedNestedMessage. Use `create(TestPickleNestedMessage_NestedMessage_NestedNestedMessageDesc)` to create a new TestPickleNestedMessage_NestedMessage_NestedNestedMessage. -export declare const TestPickleNestedMessage_NestedMessage_NestedNestedMessageDesc: GenDescMessage; - -/** - * @generated from enum proto3_arena_unittest.ForeignEnum - */ -export enum ForeignEnum { - /** - * @generated from enum value: FOREIGN_ZERO = 0; - */ - FOREIGN_ZERO = 0, - - /** - * @generated from enum value: FOREIGN_FOO = 4; - */ - FOREIGN_FOO = 4, - - /** - * @generated from enum value: FOREIGN_BAR = 5; - */ - FOREIGN_BAR = 5, - - /** - * @generated from enum value: FOREIGN_BAZ = 6; - */ - FOREIGN_BAZ = 6, -} - -// Describes the enum proto3_arena_unittest.ForeignEnum. -export declare const ForeignEnumDesc: GenDescEnum; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_pb.js deleted file mode 100644 index 3c0b71a80..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_arena_pb.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_proto3_arena.proto (package proto3_arena_unittest, syntax proto3) -/* eslint-disable */ - -import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; - -export const fileDesc_google_protobuf_unittest_proto3_arena = /*@__PURE__*/ - fileDesc("Citnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zX2FyZW5hLnByb3RvEhVwcm90bzNfYXJlbmFfdW5pdHRlc3Qi7RkKDFRlc3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIXCg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIVCg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJSChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIxLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJHChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyJS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJMChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIuLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bRJBChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yIi5wcm90bzNfYXJlbmFfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJUChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyMS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBEl8KIG9wdGlvbmFsX3VudmVyaWZpZWRfbGF6eV9tZXNzYWdlGBwgASgLMjEucHJvdG8zX2FyZW5hX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgJ4ARJRChxvcHRpb25hbF9sYXp5X2ltcG9ydF9tZXNzYWdlGHMgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VCAigBEhYKDnJlcGVhdGVkX2ludDMyGB8gAygFEhYKDnJlcGVhdGVkX2ludDY0GCAgAygDEhcKD3JlcGVhdGVkX3VpbnQzMhghIAMoDRIXCg9yZXBlYXRlZF91aW50NjQYIiADKAQSFwoPcmVwZWF0ZWRfc2ludDMyGCMgAygREhcKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoEhIYChByZXBlYXRlZF9maXhlZDMyGCUgAygHEhgKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAYSGQoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA8SGQoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBASFgoOcmVwZWF0ZWRfZmxvYXQYKSADKAISFwoPcmVwZWF0ZWRfZG91YmxlGCogAygBEhUKDXJlcGVhdGVkX2Jvb2wYKyADKAgSFwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJEhYKDnJlcGVhdGVkX2J5dGVzGC0gAygMEiIKFXByb3RvM19vcHRpb25hbF9pbnQzMhh0IAEoBUgBiAEBEiIKFXByb3RvM19vcHRpb25hbF9pbnQ2NBh1IAEoA0gCiAEBEiMKFnByb3RvM19vcHRpb25hbF91aW50MzIYdiABKA1IA4gBARIjChZwcm90bzNfb3B0aW9uYWxfdWludDY0GHcgASgESASIAQESIwoWcHJvdG8zX29wdGlvbmFsX3NpbnQzMhh4IAEoEUgFiAEBEiMKFnByb3RvM19vcHRpb25hbF9zaW50NjQYeSABKBJIBogBARIkChdwcm90bzNfb3B0aW9uYWxfZml4ZWQzMhh6IAEoB0gHiAEBEiQKF3Byb3RvM19vcHRpb25hbF9maXhlZDY0GHsgASgGSAiIAQESJQoYcHJvdG8zX29wdGlvbmFsX3NmaXhlZDMyGHwgASgPSAmIAQESJQoYcHJvdG8zX29wdGlvbmFsX3NmaXhlZDY0GH0gASgQSAqIAQESIgoVcHJvdG8zX29wdGlvbmFsX2Zsb2F0GH4gASgCSAuIAQESIwoWcHJvdG8zX29wdGlvbmFsX2RvdWJsZRh/IAEoAUgMiAEBEiIKFHByb3RvM19vcHRpb25hbF9ib29sGIABIAEoCEgNiAEBEiQKFnByb3RvM19vcHRpb25hbF9zdHJpbmcYgQEgASgJSA6IAQESIwoVcHJvdG8zX29wdGlvbmFsX2J5dGVzGIIBIAEoDEgPiAEBElIKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMjEucHJvdG8zX2FyZW5hX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEkcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIlLnByb3RvM19hcmVuYV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEkwKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMi4ucHJvdG8zX2FyZW5hX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEkEKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIiLnByb3RvM19hcmVuYV91bml0dGVzdC5Gb3JlaWduRW51bRIhChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCEhkKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBElQKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzIxLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASUQoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyMS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAGhsKDU5lc3RlZE1lc3NhZ2USCgoCYmIYASABKAUiQwoKTmVzdGVkRW51bRIICgRaRVJPEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGRCGAoWX3Byb3RvM19vcHRpb25hbF9pbnQzMkIYChZfcHJvdG8zX29wdGlvbmFsX2ludDY0QhkKF19wcm90bzNfb3B0aW9uYWxfdWludDMyQhkKF19wcm90bzNfb3B0aW9uYWxfdWludDY0QhkKF19wcm90bzNfb3B0aW9uYWxfc2ludDMyQhkKF19wcm90bzNfb3B0aW9uYWxfc2ludDY0QhoKGF9wcm90bzNfb3B0aW9uYWxfZml4ZWQzMkIaChhfcHJvdG8zX29wdGlvbmFsX2ZpeGVkNjRCGwoZX3Byb3RvM19vcHRpb25hbF9zZml4ZWQzMkIbChlfcHJvdG8zX29wdGlvbmFsX3NmaXhlZDY0QhgKFl9wcm90bzNfb3B0aW9uYWxfZmxvYXRCGQoXX3Byb3RvM19vcHRpb25hbF9kb3VibGVCFwoVX3Byb3RvM19vcHRpb25hbF9ib29sQhkKF19wcm90bzNfb3B0aW9uYWxfc3RyaW5nQhgKFl9wcm90bzNfb3B0aW9uYWxfYnl0ZXMirgMKD1Rlc3RQYWNrZWRUeXBlcxIYCgxwYWNrZWRfaW50MzIYWiADKAVCAhABEhgKDHBhY2tlZF9pbnQ2NBhbIAMoA0ICEAESGQoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAESGQoNcGFja2VkX3VpbnQ2NBhdIAMoBEICEAESGQoNcGFja2VkX3NpbnQzMhheIAMoEUICEAESGQoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAESGgoOcGFja2VkX2ZpeGVkMzIYYCADKAdCAhABEhoKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQARIbCg9wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhABEhsKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAESGAoMcGFja2VkX2Zsb2F0GGQgAygCQgIQARIZCg1wYWNrZWRfZG91YmxlGGUgAygBQgIQARIXCgtwYWNrZWRfYm9vbBhmIAMoCEICEAESOwoLcGFja2VkX2VudW0YZyADKA4yIi5wcm90bzNfYXJlbmFfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABIt8DChFUZXN0VW5wYWNrZWRUeXBlcxIaCg5yZXBlYXRlZF9pbnQzMhgBIAMoBUICEAASGgoOcmVwZWF0ZWRfaW50NjQYAiADKANCAhAAEhsKD3JlcGVhdGVkX3VpbnQzMhgDIAMoDUICEAASGwoPcmVwZWF0ZWRfdWludDY0GAQgAygEQgIQABIbCg9yZXBlYXRlZF9zaW50MzIYBSADKBFCAhAAEhsKD3JlcGVhdGVkX3NpbnQ2NBgGIAMoEkICEAASHAoQcmVwZWF0ZWRfZml4ZWQzMhgHIAMoB0ICEAASHAoQcmVwZWF0ZWRfZml4ZWQ2NBgIIAMoBkICEAASHQoRcmVwZWF0ZWRfc2ZpeGVkMzIYCSADKA9CAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDY0GAogAygQQgIQABIaCg5yZXBlYXRlZF9mbG9hdBgLIAMoAkICEAASGwoPcmVwZWF0ZWRfZG91YmxlGAwgAygBQgIQABIZCg1yZXBlYXRlZF9ib29sGA0gAygIQgIQABJQChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgOIAMoDjIuLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAihgIKEk5lc3RlZFRlc3RBbGxUeXBlcxI4CgVjaGlsZBgBIAEoCzIpLnByb3RvM19hcmVuYV91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXMSNAoHcGF5bG9hZBgCIAEoCzIjLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMSQQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyKS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEj0KDGxhenlfcGF5bG9hZBgEIAEoCzIjLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigBIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSJZChdUZXN0UGlja2xlTmVzdGVkTWVzc2FnZRo+Cg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGiEKE05lc3RlZE5lc3RlZE1lc3NhZ2USCgoCY2MYASABKAUqUgoLRm9yZWlnbkVudW0SEAoMRk9SRUlHTl9aRVJPEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAZCA/gBAWIGcHJvdG8z", [fileDesc_google_protobuf_unittest_import]); - -// Describes the message proto3_arena_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export const TestAllTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0); - -// Describes the message proto3_arena_unittest.TestAllTypes.NestedMessage. Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export const TestAllTypes_NestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0, 0); - -// Describes the enum proto3_arena_unittest.TestAllTypes.NestedEnum. -export const TestAllTypes_NestedEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0, 0); - -/** - * @generated from enum proto3_arena_unittest.TestAllTypes.NestedEnum - */ -export const TestAllTypes_NestedEnum = /*@__PURE__*/ - tsEnum(TestAllTypes_NestedEnumDesc); - -// Describes the message proto3_arena_unittest.TestPackedTypes. Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export const TestPackedTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 1); - -// Describes the message proto3_arena_unittest.TestUnpackedTypes. Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export const TestUnpackedTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 2); - -// Describes the message proto3_arena_unittest.NestedTestAllTypes. Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export const NestedTestAllTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 3); - -// Describes the message proto3_arena_unittest.ForeignMessage. Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export const ForeignMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 4); - -// Describes the message proto3_arena_unittest.TestEmptyMessage. Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export const TestEmptyMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 5); - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage. Use `create(TestPickleNestedMessageDesc)` to create a new TestPickleNestedMessage. -export const TestPickleNestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 6); - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage. Use `create(TestPickleNestedMessage_NestedMessageDesc)` to create a new TestPickleNestedMessage_NestedMessage. -export const TestPickleNestedMessage_NestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 6, 0); - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage.NestedNestedMessage. Use `create(TestPickleNestedMessage_NestedMessage_NestedNestedMessageDesc)` to create a new TestPickleNestedMessage_NestedMessage_NestedNestedMessage. -export const TestPickleNestedMessage_NestedMessage_NestedNestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 6, 0, 0); - -// Describes the enum proto3_arena_unittest.ForeignEnum. -export const ForeignEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0); - -/** - * @generated from enum proto3_arena_unittest.ForeignEnum - */ -export const ForeignEnum = /*@__PURE__*/ - tsEnum(ForeignEnumDesc); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_lite_pb.d.ts b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_lite_pb.d.ts deleted file mode 100644 index 94bcece1e..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_lite_pb.d.ts +++ /dev/null @@ -1,591 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_proto3_lite.proto (package proto3_lite_unittest, syntax proto3) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; -import type { ImportMessage } from "./unittest_import_pb.js"; -import type { PublicImportMessage } from "./unittest_import_public_pb.js"; - -export declare const fileDesc_google_protobuf_unittest_proto3_lite: GenDescFile; - -/** - * This proto includes every type of field in both singular and repeated - * forms. - * - * @generated from message proto3_lite_unittest.TestAllTypes - */ -export declare type TestAllTypes = Message<"proto3_lite_unittest.TestAllTypes"> & { - /** - * Singular - * - * @generated from field: int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_lite_unittest.ForeignMessage optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_import_message = 20; - */ - optionalImportMessage?: ImportMessage; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypes_NestedEnum; - - /** - * @generated from field: proto3_lite_unittest.ForeignEnum optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnum; - - /** - * @generated from field: string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessage; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypes_NestedMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from field: repeated proto3_lite_unittest.ForeignMessage repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessage[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessage[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; - - /** - * @generated from field: repeated proto3_lite_unittest.ForeignEnum repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnum[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from oneof proto3_lite_unittest.TestAllTypes.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypes_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message proto3_lite_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export declare const TestAllTypesDesc: GenDescMessage; - -/** - * @generated from message proto3_lite_unittest.TestAllTypes.NestedMessage - */ -export declare type TestAllTypes_NestedMessage = Message<"proto3_lite_unittest.TestAllTypes.NestedMessage"> & { - /** - * The field name "b" fails to compile in proto1 because it conflicts with - * a local variable named "b" in one of the generated methods. Doh. - * This file needs to compile in proto1 to test backwards-compatibility. - * - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_lite_unittest.TestAllTypes.NestedMessage. Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export declare const TestAllTypes_NestedMessageDesc: GenDescMessage; - -/** - * @generated from enum proto3_lite_unittest.TestAllTypes.NestedEnum - */ -export enum TestAllTypes_NestedEnum { - /** - * @generated from enum value: ZERO = 0; - */ - ZERO = 0, - - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * Intentionally negative. - * - * @generated from enum value: NEG = -1; - */ - NEG = -1, -} - -// Describes the enum proto3_lite_unittest.TestAllTypes.NestedEnum. -export declare const TestAllTypes_NestedEnumDesc: GenDescEnum; - -/** - * @generated from message proto3_lite_unittest.TestPackedTypes - */ -export declare type TestPackedTypes = Message<"proto3_lite_unittest.TestPackedTypes"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated proto3_lite_unittest.ForeignEnum packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnum[]; -}; - -// Describes the message proto3_lite_unittest.TestPackedTypes. Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export declare const TestPackedTypesDesc: GenDescMessage; - -/** - * Explicitly set packed to false - * - * @generated from message proto3_lite_unittest.TestUnpackedTypes - */ -export declare type TestUnpackedTypes = Message<"proto3_lite_unittest.TestUnpackedTypes"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 1 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 2 [packed = false]; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 3 [packed = false]; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 4 [packed = false]; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 5 [packed = false]; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 6 [packed = false]; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 7 [packed = false]; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 8 [packed = false]; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 9 [packed = false]; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 10 [packed = false]; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 11 [packed = false]; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 12 [packed = false]; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 13 [packed = false]; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false]; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; -}; - -// Describes the message proto3_lite_unittest.TestUnpackedTypes. Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export declare const TestUnpackedTypesDesc: GenDescMessage; - -/** - * This proto includes a recursively nested message. - * - * @generated from message proto3_lite_unittest.NestedTestAllTypes - */ -export declare type NestedTestAllTypes = Message<"proto3_lite_unittest.NestedTestAllTypes"> & { - /** - * @generated from field: proto3_lite_unittest.NestedTestAllTypes child = 1; - */ - child?: NestedTestAllTypes; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes payload = 2; - */ - payload?: TestAllTypes; -}; - -// Describes the message proto3_lite_unittest.NestedTestAllTypes. Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export declare const NestedTestAllTypesDesc: GenDescMessage; - -/** - * Define these after TestAllTypes to make sure the compiler can handle - * that. - * - * @generated from message proto3_lite_unittest.ForeignMessage - */ -export declare type ForeignMessage = Message<"proto3_lite_unittest.ForeignMessage"> & { - /** - * @generated from field: int32 c = 1; - */ - c: number; -}; - -// Describes the message proto3_lite_unittest.ForeignMessage. Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export declare const ForeignMessageDesc: GenDescMessage; - -/** - * TestEmptyMessage is used to test behavior of unknown fields. - * - * @generated from message proto3_lite_unittest.TestEmptyMessage - */ -export declare type TestEmptyMessage = Message<"proto3_lite_unittest.TestEmptyMessage"> & { -}; - -// Describes the message proto3_lite_unittest.TestEmptyMessage. Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export declare const TestEmptyMessageDesc: GenDescMessage; - -/** - * @generated from enum proto3_lite_unittest.ForeignEnum - */ -export enum ForeignEnum { - /** - * @generated from enum value: FOREIGN_ZERO = 0; - */ - FOREIGN_ZERO = 0, - - /** - * @generated from enum value: FOREIGN_FOO = 4; - */ - FOREIGN_FOO = 4, - - /** - * @generated from enum value: FOREIGN_BAR = 5; - */ - FOREIGN_BAR = 5, - - /** - * @generated from enum value: FOREIGN_BAZ = 6; - */ - FOREIGN_BAZ = 6, -} - -// Describes the enum proto3_lite_unittest.ForeignEnum. -export declare const ForeignEnumDesc: GenDescEnum; - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_lite_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_lite_pb.js deleted file mode 100644 index c7c68f425..000000000 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_lite_pb.js +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=js+dts" -// @generated from file google/protobuf/unittest_proto3_lite.proto (package proto3_lite_unittest, syntax proto3) -/* eslint-disable */ - -import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; - -export const fileDesc_google_protobuf_unittest_proto3_lite = /*@__PURE__*/ - fileDesc("Cipnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zX2xpdGUucHJvdG8SFHByb3RvM19saXRlX3VuaXR0ZXN0IusQCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSUQoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJGChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyJC5wcm90bzNfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEksKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMi0ucHJvdG8zX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SQAoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiEucHJvdG8zX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJTChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSUQoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJGChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyJC5wcm90bzNfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEksKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMi0ucHJvdG8zX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SQAoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMiEucHJvdG8zX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJTChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASUAoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBSJDCgpOZXN0ZWRFbnVtEggKBFpFUk8QABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCKtAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI6CgtwYWNrZWRfZW51bRhnIAMoDjIhLnByb3RvM19saXRlX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLeAwoRVGVzdFVucGFja2VkVHlwZXMSGgoOcmVwZWF0ZWRfaW50MzIYASADKAVCAhAAEhoKDnJlcGVhdGVkX2ludDY0GAIgAygDQgIQABIbCg9yZXBlYXRlZF91aW50MzIYAyADKA1CAhAAEhsKD3JlcGVhdGVkX3VpbnQ2NBgEIAMoBEICEAASGwoPcmVwZWF0ZWRfc2ludDMyGAUgAygRQgIQABIbCg9yZXBlYXRlZF9zaW50NjQYBiADKBJCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkMzIYByADKAdCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkNjQYCCADKAZCAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDMyGAkgAygPQgIQABIdChFyZXBlYXRlZF9zZml4ZWQ2NBgKIAMoEEICEAASGgoOcmVwZWF0ZWRfZmxvYXQYCyADKAJCAhAAEhsKD3JlcGVhdGVkX2RvdWJsZRgMIAMoAUICEAASGQoNcmVwZWF0ZWRfYm9vbBgNIAMoCEICEAASTwoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YDiADKA4yLS5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAiggEKEk5lc3RlZFRlc3RBbGxUeXBlcxI3CgVjaGlsZBgBIAEoCzIoLnByb3RvM19saXRlX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxIzCgdwYXlsb2FkGAIgASgLMiIucHJvdG8zX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSpSCgtGb3JlaWduRW51bRIQCgxGT1JFSUdOX1pFUk8QABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBkICSANiBnByb3RvMw", [fileDesc_google_protobuf_unittest_import]); - -// Describes the message proto3_lite_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export const TestAllTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0); - -// Describes the message proto3_lite_unittest.TestAllTypes.NestedMessage. Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export const TestAllTypes_NestedMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0, 0); - -// Describes the enum proto3_lite_unittest.TestAllTypes.NestedEnum. -export const TestAllTypes_NestedEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0, 0); - -/** - * @generated from enum proto3_lite_unittest.TestAllTypes.NestedEnum - */ -export const TestAllTypes_NestedEnum = /*@__PURE__*/ - tsEnum(TestAllTypes_NestedEnumDesc); - -// Describes the message proto3_lite_unittest.TestPackedTypes. Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export const TestPackedTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 1); - -// Describes the message proto3_lite_unittest.TestUnpackedTypes. Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export const TestUnpackedTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 2); - -// Describes the message proto3_lite_unittest.NestedTestAllTypes. Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export const NestedTestAllTypesDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 3); - -// Describes the message proto3_lite_unittest.ForeignMessage. Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export const ForeignMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 4); - -// Describes the message proto3_lite_unittest.TestEmptyMessage. Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export const TestEmptyMessageDesc = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 5); - -// Describes the enum proto3_lite_unittest.ForeignEnum. -export const ForeignEnumDesc = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0); - -/** - * @generated from enum proto3_lite_unittest.ForeignEnum - */ -export const ForeignEnum = /*@__PURE__*/ - tsEnum(ForeignEnumDesc); - diff --git a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_pb.js b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_pb.js index 6df3f4c66..d07086eaf 100644 --- a/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_pb.js +++ b/packages/protobuf-test/src/gen/js/google/protobuf/unittest_proto3_pb.js @@ -20,7 +20,7 @@ import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/code import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; export const fileDesc_google_protobuf_unittest_proto3 = /*@__PURE__*/ - fileDesc("CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zLnByb3RvEg9wcm90bzNfdW5pdHRlc3QigxIKDFRlc3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIXCg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIVCg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJRChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgBiAEBEkEKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIfLnByb3RvM191bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEkYKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMigucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEjsKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIcLnByb3RvM191bml0dGVzdC5Gb3JlaWduRW51bRIhChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCEhkKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBElUKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlEk4KFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWQogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAngBElEKHG9wdGlvbmFsX2xhenlfaW1wb3J0X21lc3NhZ2UYcyABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSTAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQQoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMh8ucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEkgKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2USRgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKC5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SOwoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMhwucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESTgoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMisucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoARIWCgxvbmVvZl91aW50MzIYbyABKA1IABJLChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBSJDCgpOZXN0ZWRFbnVtEggKBFpFUk8QABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZEIaChhfb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UiqAMKD1Rlc3RQYWNrZWRUeXBlcxIYCgxwYWNrZWRfaW50MzIYWiADKAVCAhABEhgKDHBhY2tlZF9pbnQ2NBhbIAMoA0ICEAESGQoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAESGQoNcGFja2VkX3VpbnQ2NBhdIAMoBEICEAESGQoNcGFja2VkX3NpbnQzMhheIAMoEUICEAESGQoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAESGgoOcGFja2VkX2ZpeGVkMzIYYCADKAdCAhABEhoKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQARIbCg9wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhABEhsKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAESGAoMcGFja2VkX2Zsb2F0GGQgAygCQgIQARIZCg1wYWNrZWRfZG91YmxlGGUgAygBQgIQARIXCgtwYWNrZWRfYm9vbBhmIAMoCEICEAESNQoLcGFja2VkX2VudW0YZyADKA4yHC5wcm90bzNfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABItkDChFUZXN0VW5wYWNrZWRUeXBlcxIaCg5yZXBlYXRlZF9pbnQzMhgBIAMoBUICEAASGgoOcmVwZWF0ZWRfaW50NjQYAiADKANCAhAAEhsKD3JlcGVhdGVkX3VpbnQzMhgDIAMoDUICEAASGwoPcmVwZWF0ZWRfdWludDY0GAQgAygEQgIQABIbCg9yZXBlYXRlZF9zaW50MzIYBSADKBFCAhAAEhsKD3JlcGVhdGVkX3NpbnQ2NBgGIAMoEkICEAASHAoQcmVwZWF0ZWRfZml4ZWQzMhgHIAMoB0ICEAASHAoQcmVwZWF0ZWRfZml4ZWQ2NBgIIAMoBkICEAASHQoRcmVwZWF0ZWRfc2ZpeGVkMzIYCSADKA9CAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDY0GAogAygQQgIQABIaCg5yZXBlYXRlZF9mbG9hdBgLIAMoAkICEAASGwoPcmVwZWF0ZWRfZG91YmxlGAwgAygBQgIQABIZCg1yZXBlYXRlZF9ib29sGA0gAygIQgIQABJKChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgOIAMoDjIoLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAieAoSTmVzdGVkVGVzdEFsbFR5cGVzEjIKBWNoaWxkGAEgASgLMiMucHJvdG8zX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxIuCgdwYXlsb2FkGAIgASgLMh0ucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyIbCg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIhIKEFRlc3RFbXB0eU1lc3NhZ2UiKQoUVGVzdE1lc3NhZ2VXaXRoRHVtbXkSEQoFZHVtbXkY/////wEgASgIIoUBCgpUZXN0T25lb2YyEjoKCGZvb19lbnVtGAYgASgOMiYucHJvdG8zX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkRW51bUgAIjQKCk5lc3RlZEVudW0SCwoHVU5LTk9XThAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQgUKA2ZvbypSCgtGb3JlaWduRW51bRIQCgxGT1JFSUdOX1pFUk8QABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBkICSAFiBnByb3RvMw", [fileDesc_google_protobuf_unittest_import]); + fileDesc("CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zLnByb3RvEg9wcm90bzNfdW5pdHRlc3Qi/xEKDFRlc3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIXCg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIVCg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJRChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgBiAEBEkEKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIfLnByb3RvM191bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEkYKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMigucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEjsKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIcLnByb3RvM191bml0dGVzdC5Gb3JlaWduRW51bRIhChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCEhkKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBElUKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlEk4KFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWQogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAngBElEKHG9wdGlvbmFsX2xhenlfaW1wb3J0X21lc3NhZ2UYcyABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSTAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQQoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMh8ucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEkgKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2USRgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKC5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SOwoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMhwucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESSgoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMisucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEhYKDG9uZW9mX3VpbnQzMhhvIAEoDUgAEksKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMisucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0ZXMYciABKAxIABobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFIkMKCk5lc3RlZEVudW0SCAoEWkVSTxAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD///////////8BQg0KC29uZW9mX2ZpZWxkQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZSKoAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI1CgtwYWNrZWRfZW51bRhnIAMoDjIcLnByb3RvM191bml0dGVzdC5Gb3JlaWduRW51bUICEAEi2QMKEVRlc3RVbnBhY2tlZFR5cGVzEhoKDnJlcGVhdGVkX2ludDMyGAEgAygFQgIQABIaCg5yZXBlYXRlZF9pbnQ2NBgCIAMoA0ICEAASGwoPcmVwZWF0ZWRfdWludDMyGAMgAygNQgIQABIbCg9yZXBlYXRlZF91aW50NjQYBCADKARCAhAAEhsKD3JlcGVhdGVkX3NpbnQzMhgFIAMoEUICEAASGwoPcmVwZWF0ZWRfc2ludDY0GAYgAygSQgIQABIcChByZXBlYXRlZF9maXhlZDMyGAcgAygHQgIQABIcChByZXBlYXRlZF9maXhlZDY0GAggAygGQgIQABIdChFyZXBlYXRlZF9zZml4ZWQzMhgJIAMoD0ICEAASHQoRcmVwZWF0ZWRfc2ZpeGVkNjQYCiADKBBCAhAAEhoKDnJlcGVhdGVkX2Zsb2F0GAsgAygCQgIQABIbCg9yZXBlYXRlZF9kb3VibGUYDCADKAFCAhAAEhkKDXJlcGVhdGVkX2Jvb2wYDSADKAhCAhAAEkoKFHJlcGVhdGVkX25lc3RlZF9lbnVtGA4gAygOMigucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtQgIQACJ4ChJOZXN0ZWRUZXN0QWxsVHlwZXMSMgoFY2hpbGQYASABKAsyIy5wcm90bzNfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEi4KB3BheWxvYWQYAiABKAsyHS5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSIpChRUZXN0TWVzc2FnZVdpdGhEdW1teRIRCgVkdW1teRj/////ASABKAgihQEKClRlc3RPbmVvZjISOgoIZm9vX2VudW0YBiABKA4yJi5wcm90bzNfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSAAiNAoKTmVzdGVkRW51bRILCgdVTktOT1dOEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEANCBQoDZm9vKlIKC0ZvcmVpZ25FbnVtEhAKDEZPUkVJR05fWkVSTxAAEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGQgJIAWIGcHJvdG8z", [fileDesc_google_protobuf_unittest_import]); // Describes the message proto3_unittest.TestAllTypes. Use `create(TestAllTypesDesc)` to create a new TestAllTypes. export const TestAllTypesDesc = /*@__PURE__*/ diff --git a/packages/protobuf-test/src/gen/ts/extra/edition2023-map-encoding_pb.ts b/packages/protobuf-test/src/gen/ts/extra/edition2023-map-encoding_pb.ts index fb73d6fb5..4d7516205 100644 --- a/packages/protobuf-test/src/gen/ts/extra/edition2023-map-encoding_pb.ts +++ b/packages/protobuf-test/src/gen/ts/extra/edition2023-map-encoding_pb.ts @@ -18,11 +18,10 @@ import type { GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_wrappers } from "@bufbuild/protobuf/wkt"; import type { Message } from "@bufbuild/protobuf"; export const fileDesc_extra_edition2023_map_encoding: GenDescFile = /*@__PURE__*/ - fileDesc("CiRleHRyYS9lZGl0aW9uMjAyMy1tYXAtZW5jb2RpbmcucHJvdG8SBHNwZWMilgEKHUVkaXRpb24yMDIzTWFwRW5jb2RpbmdNZXNzYWdlEkQKCW1hcF9maWVsZBhNIAMoCzIxLnNwZWMuRWRpdGlvbjIwMjNNYXBFbmNvZGluZ01lc3NhZ2UuTWFwRmllbGRFbnRyeRovCg1NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoCDoCOAFCBZIDAigCYghlZGl0aW9uc3DoBw", [fileDesc_google_protobuf_wrappers]); + fileDesc("CiRleHRyYS9lZGl0aW9uMjAyMy1tYXAtZW5jb2RpbmcucHJvdG8SBHNwZWMilgEKHUVkaXRpb24yMDIzTWFwRW5jb2RpbmdNZXNzYWdlEkQKCW1hcF9maWVsZBhNIAMoCzIxLnNwZWMuRWRpdGlvbjIwMjNNYXBFbmNvZGluZ01lc3NhZ2UuTWFwRmllbGRFbnRyeRovCg1NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoCDoCOAFCBZIDAigCYghlZGl0aW9uc3DoBw"); /** * Map fields are syntactic sugar for a repeated message field with field 1 for diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/map_lite_unittest_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/map_lite_unittest_pb.ts deleted file mode 100644 index 5807ac17d..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/map_lite_unittest_pb.ts +++ /dev/null @@ -1,417 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/map_lite_unittest.proto (package protobuf_unittest, syntax proto2) -/* eslint-disable */ - -import type { GenDescEnum, GenDescExtension, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import type { ForeignMessageLite, TestAllExtensionsLite, TestAllTypesLite } from "./unittest_lite_pb.js"; -import { fileDesc_google_protobuf_unittest_lite } from "./unittest_lite_pb.js"; -import type { Message } from "@bufbuild/protobuf"; - -export const fileDesc_google_protobuf_map_lite_unittest: GenDescFile = /*@__PURE__*/ - fileDesc("Cidnb29nbGUvcHJvdG9idWYvbWFwX2xpdGVfdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0ItcTCgtUZXN0TWFwTGl0ZRJKCg9tYXBfaW50MzJfaW50MzIYASADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkludDMyRW50cnkSSgoPbWFwX2ludDY0X2ludDY0GAIgAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwSW50NjRJbnQ2NEVudHJ5Ek4KEW1hcF91aW50MzJfdWludDMyGAMgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwVWludDMyVWludDMyRW50cnkSTgoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBVaW50NjRVaW50NjRFbnRyeRJOChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ek4KEW1hcF9zaW50NjRfc2ludDY0GAYgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwU2ludDY0U2ludDY0RW50cnkSUgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSUgoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSVgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjcucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5ElYKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBgKIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRJKCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkZsb2F0RW50cnkSTAoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEludDMyRG91YmxlRW50cnkSRgoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXBMaXRlLk1hcEJvb2xCb29sRW50cnkSTgoRbWFwX3N0cmluZ19zdHJpbmcYDiADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBTdHJpbmdTdHJpbmdFbnRyeRJKCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkJ5dGVzRW50cnkSSAoObWFwX2ludDMyX2VudW0YECADKAsyMC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwTGl0ZS5NYXBJbnQzMkVudW1FbnRyeRJdChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMjoucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5Ej4KCHRlYm9yaW5nGBIgAygLMiwucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcExpdGUuVGVib3JpbmdFbnRyeRo0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjQKEk1hcEludDMyQnl0ZXNFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAw6AjgBGlMKEU1hcEludDMyRW51bUVudHJ5EgsKA2tleRgBIAEoBRItCgV2YWx1ZRgCIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcEVudW1MaXRlOgI4ARpkChtNYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgFEjQKBXZhbHVlGAIgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VMaXRlOgI4ARovCg1UZWJvcmluZ0VudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEixRMKEFRlc3RBcmVuYU1hcExpdGUSTwoPbWFwX2ludDMyX2ludDMyGAEgAygLMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkludDMyRW50cnkSTwoPbWFwX2ludDY0X2ludDY0GAIgAygLMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQ2NEludDY0RW50cnkSUwoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFVpbnQzMlVpbnQzMkVudHJ5ElMKEW1hcF91aW50NjRfdWludDY0GAQgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBVaW50NjRVaW50NjRFbnRyeRJTChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcExpdGUuTWFwU2ludDMyU2ludDMyRW50cnkSUwoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5ElcKE21hcF9maXhlZDMyX2ZpeGVkMzIYByADKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSVwoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcExpdGUuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJbChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRJbChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRJPCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyNi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcEludDMyRmxvYXRFbnRyeRJRChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjcucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkRvdWJsZUVudHJ5EksKDW1hcF9ib29sX2Jvb2wYDSADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcEJvb2xCb29sRW50cnkSUwoRbWFwX3N0cmluZ19zdHJpbmcYDiADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXBMaXRlLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ek8KD21hcF9pbnQzMl9ieXRlcxgPIAMoCzI2LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcExpdGUuTWFwSW50MzJCeXRlc0VudHJ5Ek0KDm1hcF9pbnQzMl9lbnVtGBAgAygLMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkVudW1FbnRyeRJiChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMj8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwTGl0ZS5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo0ChJNYXBJbnQzMkJ5dGVzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgMOgI4ARpTChFNYXBJbnQzMkVudW1FbnRyeRILCgNrZXkYASABKAUSLQoFdmFsdWUYAiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5NYXBFbnVtTGl0ZToCOAEaaQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoBRI5CgV2YWx1ZRgCIAEoCzIqLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlQXJlbmFMaXRlOgI4ASLCAQoaVGVzdFJlcXVpcmVkTWVzc2FnZU1hcExpdGUSTgoJbWFwX2ZpZWxkGAEgAygLMjsucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTWVzc2FnZU1hcExpdGUuTWFwRmllbGRFbnRyeRpUCg1NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRIyCgV2YWx1ZRgCIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZExpdGU6AjgBIu8CCg9UZXN0RW51bU1hcExpdGUSTgoPa25vd25fbWFwX2ZpZWxkGGUgAygLMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEVudW1NYXBMaXRlLktub3duTWFwRmllbGRFbnRyeRJSChF1bmtub3duX21hcF9maWVsZBhmIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFbnVtTWFwTGl0ZS5Vbmtub3duTWFwRmllbGRFbnRyeRpaChJLbm93bk1hcEZpZWxkRW50cnkSCwoDa2V5GAEgASgFEjMKBXZhbHVlGAIgASgOMiQucHJvdG9idWZfdW5pdHRlc3QuUHJvdG8yTWFwRW51bUxpdGU6AjgBGlwKFFVua25vd25NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRIzCgV2YWx1ZRgCIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0LlByb3RvMk1hcEVudW1MaXRlOgI4ASKcAwoYVGVzdEVudW1NYXBQbHVzRXh0cmFMaXRlElcKD2tub3duX21hcF9maWVsZBhlIAMoCzI+LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFbnVtTWFwUGx1c0V4dHJhTGl0ZS5Lbm93bk1hcEZpZWxkRW50cnkSWwoRdW5rbm93bl9tYXBfZmllbGQYZiADKAsyQC5wcm90b2J1Zl91bml0dGVzdC5UZXN0RW51bU1hcFBsdXNFeHRyYUxpdGUuVW5rbm93bk1hcEZpZWxkRW50cnkaYwoSS25vd25NYXBGaWVsZEVudHJ5EgsKA2tleRgBIAEoBRI8CgV2YWx1ZRgCIAEoDjItLnByb3RvYnVmX3VuaXR0ZXN0LlByb3RvMk1hcEVudW1QbHVzRXh0cmFMaXRlOgI4ARplChRVbmtub3duTWFwRmllbGRFbnRyeRILCgNrZXkYASABKAUSPAoFdmFsdWUYAiABKA4yLS5wcm90b2J1Zl91bml0dGVzdC5Qcm90bzJNYXBFbnVtUGx1c0V4dHJhTGl0ZToCOAEiyAEKElRlc3RNZXNzYWdlTWFwTGl0ZRJVChFtYXBfaW50MzJfbWVzc2FnZRgBIAMoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNZXNzYWdlTWFwTGl0ZS5NYXBJbnQzMk1lc3NhZ2VFbnRyeRpbChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAUSMgoFdmFsdWUYAiABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlOgI4ASKbAQoQVGVzdFJlcXVpcmVkTGl0ZRIJCgFhGAEgAigFEgkKAWIYAiACKAUSCQoBYxgDIAIoBTJmCgZzaW5nbGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUY6AcgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTGl0ZVIGc2luZ2xlIiQKF0ZvcmVpZ25NZXNzYWdlQXJlbmFMaXRlEgkKAWMYASABKAUqbQoRUHJvdG8yTWFwRW51bUxpdGUSHAoYUFJPVE8yX01BUF9FTlVNX0ZPT19MSVRFEAASHAoYUFJPVE8yX01BUF9FTlVNX0JBUl9MSVRFEAESHAoYUFJPVE8yX01BUF9FTlVNX0JBWl9MSVRFEAIqngEKGlByb3RvMk1hcEVudW1QbHVzRXh0cmFMaXRlEh4KGkVfUFJPVE8yX01BUF9FTlVNX0ZPT19MSVRFEAASHgoaRV9QUk9UTzJfTUFQX0VOVU1fQkFSX0xJVEUQARIeChpFX1BST1RPMl9NQVBfRU5VTV9CQVpfTElURRACEiAKHEVfUFJPVE8yX01BUF9FTlVNX0VYVFJBX0xJVEUQAypSCgtNYXBFbnVtTGl0ZRIVChFNQVBfRU5VTV9GT09fTElURRAAEhUKEU1BUF9FTlVNX0JBUl9MSVRFEAESFQoRTUFQX0VOVU1fQkFaX0xJVEUQAkIFSAP4AQE", [fileDesc_google_protobuf_unittest_lite]); - -/** - * @generated from message protobuf_unittest.TestMapLite - */ -export type TestMapLite = Message<"protobuf_unittest.TestMapLite"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnumLite }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessageLite }; - - /** - * @generated from field: map teboring = 18; - */ - teboring: { [key: number]: number }; -}; - -// Describes the message protobuf_unittest.TestMapLite. -// Use `create(TestMapLiteDesc)` to create a new TestMapLite. -export const TestMapLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 0); - -/** - * @generated from message protobuf_unittest.TestArenaMapLite - */ -export type TestArenaMapLite = Message<"protobuf_unittest.TestArenaMapLite"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnumLite }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessageArenaLite }; -}; - -// Describes the message protobuf_unittest.TestArenaMapLite. -// Use `create(TestArenaMapLiteDesc)` to create a new TestArenaMapLite. -export const TestArenaMapLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 1); - -/** - * Test embedded message with required fields - * - * @generated from message protobuf_unittest.TestRequiredMessageMapLite - */ -export type TestRequiredMessageMapLite = Message<"protobuf_unittest.TestRequiredMessageMapLite"> & { - /** - * @generated from field: map map_field = 1; - */ - mapField: { [key: number]: TestRequiredLite }; -}; - -// Describes the message protobuf_unittest.TestRequiredMessageMapLite. -// Use `create(TestRequiredMessageMapLiteDesc)` to create a new TestRequiredMessageMapLite. -export const TestRequiredMessageMapLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 2); - -/** - * @generated from message protobuf_unittest.TestEnumMapLite - */ -export type TestEnumMapLite = Message<"protobuf_unittest.TestEnumMapLite"> & { - /** - * @generated from field: map known_map_field = 101; - */ - knownMapField: { [key: number]: Proto2MapEnumLite }; - - /** - * @generated from field: map unknown_map_field = 102; - */ - unknownMapField: { [key: number]: Proto2MapEnumLite }; -}; - -// Describes the message protobuf_unittest.TestEnumMapLite. -// Use `create(TestEnumMapLiteDesc)` to create a new TestEnumMapLite. -export const TestEnumMapLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 3); - -/** - * @generated from message protobuf_unittest.TestEnumMapPlusExtraLite - */ -export type TestEnumMapPlusExtraLite = Message<"protobuf_unittest.TestEnumMapPlusExtraLite"> & { - /** - * @generated from field: map known_map_field = 101; - */ - knownMapField: { [key: number]: Proto2MapEnumPlusExtraLite }; - - /** - * @generated from field: map unknown_map_field = 102; - */ - unknownMapField: { [key: number]: Proto2MapEnumPlusExtraLite }; -}; - -// Describes the message protobuf_unittest.TestEnumMapPlusExtraLite. -// Use `create(TestEnumMapPlusExtraLiteDesc)` to create a new TestEnumMapPlusExtraLite. -export const TestEnumMapPlusExtraLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 4); - -/** - * @generated from message protobuf_unittest.TestMessageMapLite - */ -export type TestMessageMapLite = Message<"protobuf_unittest.TestMessageMapLite"> & { - /** - * @generated from field: map map_int32_message = 1; - */ - mapInt32Message: { [key: number]: TestAllTypesLite }; -}; - -// Describes the message protobuf_unittest.TestMessageMapLite. -// Use `create(TestMessageMapLiteDesc)` to create a new TestMessageMapLite. -export const TestMessageMapLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 5); - -/** - * @generated from message protobuf_unittest.TestRequiredLite - */ -export type TestRequiredLite = Message<"protobuf_unittest.TestRequiredLite"> & { - /** - * @generated from field: required int32 a = 1; - */ - a: number; - - /** - * @generated from field: required int32 b = 2; - */ - b: number; - - /** - * @generated from field: required int32 c = 3; - */ - c: number; -}; - -// Describes the message protobuf_unittest.TestRequiredLite. -// Use `create(TestRequiredLiteDesc)` to create a new TestRequiredLite. -export const TestRequiredLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 6); - -/** - * @generated from extension: optional protobuf_unittest.TestRequiredLite single = 1000; - */ -export const TestRequiredLite_single: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_map_lite_unittest, 6, 0); - -/** - * @generated from message protobuf_unittest.ForeignMessageArenaLite - */ -export type ForeignMessageArenaLite = Message<"protobuf_unittest.ForeignMessageArenaLite"> & { - /** - * @generated from field: optional int32 c = 1; - */ - c: number; -}; - -// Describes the message protobuf_unittest.ForeignMessageArenaLite. -// Use `create(ForeignMessageArenaLiteDesc)` to create a new ForeignMessageArenaLite. -export const ForeignMessageArenaLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_lite_unittest, 7); - -/** - * @generated from enum protobuf_unittest.Proto2MapEnumLite - */ -export enum Proto2MapEnumLite { - /** - * @generated from enum value: PROTO2_MAP_ENUM_FOO_LITE = 0; - */ - PROTO2_MAP_ENUM_FOO_LITE = 0, - - /** - * @generated from enum value: PROTO2_MAP_ENUM_BAR_LITE = 1; - */ - PROTO2_MAP_ENUM_BAR_LITE = 1, - - /** - * @generated from enum value: PROTO2_MAP_ENUM_BAZ_LITE = 2; - */ - PROTO2_MAP_ENUM_BAZ_LITE = 2, -} - -// Describes the enum protobuf_unittest.Proto2MapEnumLite. -export const Proto2MapEnumLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_lite_unittest, 0); - -/** - * @generated from enum protobuf_unittest.Proto2MapEnumPlusExtraLite - */ -export enum Proto2MapEnumPlusExtraLite { - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_FOO_LITE = 0; - */ - E_PROTO2_MAP_ENUM_FOO_LITE = 0, - - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_BAR_LITE = 1; - */ - E_PROTO2_MAP_ENUM_BAR_LITE = 1, - - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_BAZ_LITE = 2; - */ - E_PROTO2_MAP_ENUM_BAZ_LITE = 2, - - /** - * @generated from enum value: E_PROTO2_MAP_ENUM_EXTRA_LITE = 3; - */ - E_PROTO2_MAP_ENUM_EXTRA_LITE = 3, -} - -// Describes the enum protobuf_unittest.Proto2MapEnumPlusExtraLite. -export const Proto2MapEnumPlusExtraLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_lite_unittest, 1); - -/** - * @generated from enum protobuf_unittest.MapEnumLite - */ -export enum MapEnumLite { - /** - * @generated from enum value: MAP_ENUM_FOO_LITE = 0; - */ - MAP_ENUM_FOO_LITE = 0, - - /** - * @generated from enum value: MAP_ENUM_BAR_LITE = 1; - */ - MAP_ENUM_BAR_LITE = 1, - - /** - * @generated from enum value: MAP_ENUM_BAZ_LITE = 2; - */ - MAP_ENUM_BAZ_LITE = 2, -} - -// Describes the enum protobuf_unittest.MapEnumLite. -export const MapEnumLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_lite_unittest, 2); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/map_unittest_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/map_unittest_pb.ts deleted file mode 100644 index 9f23260cd..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/map_unittest_pb.ts +++ /dev/null @@ -1,405 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/map_unittest.proto (package protobuf_unittest, syntax proto3) -/* eslint-disable */ - -// We don't put this in a package within proto2 because we need to make sure -// that the generated code doesn't depend on being in the proto2 namespace. -// In map_test_util.h we do "using namespace unittest = protobuf_unittest". - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import type { ForeignMessage, TestAllTypes, TestRequired } from "./unittest_pb.js"; -import { fileDesc_google_protobuf_unittest } from "./unittest_pb.js"; -import type { Message } from "@bufbuild/protobuf"; - -export const fileDesc_google_protobuf_map_unittest: GenDescFile = /*@__PURE__*/ - fileDesc("CiJnb29nbGUvcHJvdG9idWYvbWFwX3VuaXR0ZXN0LnByb3RvEhFwcm90b2J1Zl91bml0dGVzdCL/FAoHVGVzdE1hcBJGCg9tYXBfaW50MzJfaW50MzIYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMySW50MzJFbnRyeRJGCg9tYXBfaW50NjRfaW50NjQYAiADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeRJKChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwVWludDMyVWludDMyRW50cnkSSgoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5EkoKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBTaW50MzJTaW50MzJFbnRyeRJKChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU2ludDY0U2ludDY0RW50cnkSTgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRJOChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5ElIKFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhgJIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5ElIKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBgKIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EkYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwSW50MzJGbG9hdEVudHJ5EkgKEG1hcF9pbnQzMl9kb3VibGUYDCADKAsyLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMyRG91YmxlRW50cnkSQgoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwQm9vbEJvb2xFbnRyeRJKChFtYXBfc3RyaW5nX3N0cmluZxgOIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnkSRgoPbWFwX2ludDMyX2J5dGVzGA8gAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnkSRAoObWFwX2ludDMyX2VudW0YECADKAsyLC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMyRW51bUVudHJ5ElkKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWFwLk1hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRJbChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRgSIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNYXAuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRJNChNtYXBfaW50MzJfYWxsX3R5cGVzGBMgAygLMjAucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcC5NYXBJbnQzMkFsbFR5cGVzRW50cnkaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo0ChJNYXBJbnQzMkJ5dGVzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgMOgI4ARpPChFNYXBJbnQzMkVudW1FbnRyeRILCgNrZXkYASABKAUSKQoFdmFsdWUYAiABKA4yGi5wcm90b2J1Zl91bml0dGVzdC5NYXBFbnVtOgI4ARpgChtNYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgFEjAKBXZhbHVlGAIgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2U6AjgBGmEKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEjAKBXZhbHVlGAIgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2U6AjgBGlgKFU1hcEludDMyQWxsVHlwZXNFbnRyeRILCgNrZXkYASABKAUSLgoFdmFsdWUYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXM6AjgBIkEKEVRlc3RNYXBTdWJtZXNzYWdlEiwKCHRlc3RfbWFwGAEgASgLMhoucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1hcCK8AQoOVGVzdE1lc3NhZ2VNYXASUQoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWVzc2FnZU1hcC5NYXBJbnQzMk1lc3NhZ2VFbnRyeRpXChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAUSLgoFdmFsdWUYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXM6AjgBIuMBCg9UZXN0U2FtZVR5cGVNYXASOgoEbWFwMRgBIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RTYW1lVHlwZU1hcC5NYXAxRW50cnkSOgoEbWFwMhgCIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnkaKwoJTWFwMUVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaKwoJTWFwMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEitgEKFlRlc3RSZXF1aXJlZE1lc3NhZ2VNYXASSgoJbWFwX2ZpZWxkGAEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTWVzc2FnZU1hcC5NYXBGaWVsZEVudHJ5GlAKDU1hcEZpZWxkRW50cnkSCwoDa2V5GAEgASgFEi4KBXZhbHVlGAIgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkOgI4ASLwEgoMVGVzdEFyZW5hTWFwEksKD21hcF9pbnQzMl9pbnQzMhgBIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBJbnQzMkludDMyRW50cnkSSwoPbWFwX2ludDY0X2ludDY0GAIgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeRJPChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBVaW50MzJVaW50MzJFbnRyeRJPChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBVaW50NjRVaW50NjRFbnRyeRJPChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBTaW50MzJTaW50MzJFbnRyeRJPChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBTaW50NjRTaW50NjRFbnRyeRJTChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSUwoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI2LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5ElcKFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhgJIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSVwoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRJLCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXAuTWFwSW50MzJGbG9hdEVudHJ5Ek0KEG1hcF9pbnQzMl9kb3VibGUYDCADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXAuTWFwSW50MzJEb3VibGVFbnRyeRJHCg1tYXBfYm9vbF9ib29sGA0gAygLMjAucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEJvb2xCb29sRW50cnkSTwoRbWFwX3N0cmluZ19zdHJpbmcYDiADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QXJlbmFNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnkSSwoPbWFwX2ludDMyX2J5dGVzGA8gAygLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEludDMyQnl0ZXNFbnRyeRJJCg5tYXBfaW50MzJfZW51bRgQIAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBcmVuYU1hcC5NYXBJbnQzMkVudW1FbnRyeRJeChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMjsucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFyZW5hTWFwLk1hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRo0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjQKEk1hcEludDMyQnl0ZXNFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAw6AjgBGk8KEU1hcEludDMyRW51bUVudHJ5EgsKA2tleRgBIAEoBRIpCgV2YWx1ZRgCIAEoDjIaLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcEVudW06AjgBGmAKG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRILCgNrZXkYASABKAUSMAoFdmFsdWUYAiABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZToCOAEi5AEKH01lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGUSSgoEdHlwZRgBIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0Lk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGUuVHlwZUVudHJ5Gl8KCVR5cGVFbnRyeRILCgNrZXkYASABKAkSQQoFdmFsdWUYAiABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAinQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSTAoFZW50cnkYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdC5NZXNzYWdlQ29udGFpbmluZ01hcENhbGxlZEVudHJ5LkVudHJ5RW50cnkaLAoKRW50cnlFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIq0BChdUZXN0UmVjdXJzaXZlTWFwTWVzc2FnZRI8CgFhGAEgAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1hcE1lc3NhZ2UuQUVudHJ5GlQKBkFFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVjdXJzaXZlTWFwTWVzc2FnZToCOAEifgoNVGVzdEkzMlN0ck1hcBI+CghtXzMyX3N0chgBIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RJMzJTdHJNYXAuTTMyU3RyRW50cnkaLQoLTTMyU3RyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgJOgI4ASo/CgdNYXBFbnVtEhAKDE1BUF9FTlVNX0ZPTxAAEhAKDE1BUF9FTlVNX0JBUhABEhAKDE1BUF9FTlVNX0JBWhACQgP4AQFiBnByb3RvMw", [fileDesc_google_protobuf_unittest]); - -/** - * Tests maps. - * - * @generated from message protobuf_unittest.TestMap - */ -export type TestMap = Message<"protobuf_unittest.TestMap"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnum }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessage }; - - /** - * @generated from field: map map_string_foreign_message = 18; - */ - mapStringForeignMessage: { [key: string]: ForeignMessage }; - - /** - * @generated from field: map map_int32_all_types = 19; - */ - mapInt32AllTypes: { [key: number]: TestAllTypes }; -}; - -// Describes the message protobuf_unittest.TestMap. -// Use `create(TestMapDesc)` to create a new TestMap. -export const TestMapDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 0); - -/** - * @generated from message protobuf_unittest.TestMapSubmessage - */ -export type TestMapSubmessage = Message<"protobuf_unittest.TestMapSubmessage"> & { - /** - * @generated from field: protobuf_unittest.TestMap test_map = 1; - */ - testMap?: TestMap; -}; - -// Describes the message protobuf_unittest.TestMapSubmessage. -// Use `create(TestMapSubmessageDesc)` to create a new TestMapSubmessage. -export const TestMapSubmessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 1); - -/** - * @generated from message protobuf_unittest.TestMessageMap - */ -export type TestMessageMap = Message<"protobuf_unittest.TestMessageMap"> & { - /** - * @generated from field: map map_int32_message = 1; - */ - mapInt32Message: { [key: number]: TestAllTypes }; -}; - -// Describes the message protobuf_unittest.TestMessageMap. -// Use `create(TestMessageMapDesc)` to create a new TestMessageMap. -export const TestMessageMapDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 2); - -/** - * Two map fields share the same entry default instance. - * - * @generated from message protobuf_unittest.TestSameTypeMap - */ -export type TestSameTypeMap = Message<"protobuf_unittest.TestSameTypeMap"> & { - /** - * @generated from field: map map1 = 1; - */ - map1: { [key: number]: number }; - - /** - * @generated from field: map map2 = 2; - */ - map2: { [key: number]: number }; -}; - -// Describes the message protobuf_unittest.TestSameTypeMap. -// Use `create(TestSameTypeMapDesc)` to create a new TestSameTypeMap. -export const TestSameTypeMapDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 3); - -/** - * Test embedded message with required fields - * - * @generated from message protobuf_unittest.TestRequiredMessageMap - */ -export type TestRequiredMessageMap = Message<"protobuf_unittest.TestRequiredMessageMap"> & { - /** - * @generated from field: map map_field = 1; - */ - mapField: { [key: number]: TestRequired }; -}; - -// Describes the message protobuf_unittest.TestRequiredMessageMap. -// Use `create(TestRequiredMessageMapDesc)` to create a new TestRequiredMessageMap. -export const TestRequiredMessageMapDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 4); - -/** - * @generated from message protobuf_unittest.TestArenaMap - */ -export type TestArenaMap = Message<"protobuf_unittest.TestArenaMap"> & { - /** - * @generated from field: map map_int32_int32 = 1; - */ - mapInt32Int32: { [key: number]: number }; - - /** - * @generated from field: map map_int64_int64 = 2; - */ - mapInt64Int64: { [key: string]: bigint }; - - /** - * @generated from field: map map_uint32_uint32 = 3; - */ - mapUint32Uint32: { [key: number]: number }; - - /** - * @generated from field: map map_uint64_uint64 = 4; - */ - mapUint64Uint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sint32_sint32 = 5; - */ - mapSint32Sint32: { [key: number]: number }; - - /** - * @generated from field: map map_sint64_sint64 = 6; - */ - mapSint64Sint64: { [key: string]: bigint }; - - /** - * @generated from field: map map_fixed32_fixed32 = 7; - */ - mapFixed32Fixed32: { [key: number]: number }; - - /** - * @generated from field: map map_fixed64_fixed64 = 8; - */ - mapFixed64Fixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_sfixed32_sfixed32 = 9; - */ - mapSfixed32Sfixed32: { [key: number]: number }; - - /** - * @generated from field: map map_sfixed64_sfixed64 = 10; - */ - mapSfixed64Sfixed64: { [key: string]: bigint }; - - /** - * @generated from field: map map_int32_float = 11; - */ - mapInt32Float: { [key: number]: number }; - - /** - * @generated from field: map map_int32_double = 12; - */ - mapInt32Double: { [key: number]: number }; - - /** - * @generated from field: map map_bool_bool = 13; - */ - mapBoolBool: { [key: string]: boolean }; - - /** - * @generated from field: map map_string_string = 14; - */ - mapStringString: { [key: string]: string }; - - /** - * @generated from field: map map_int32_bytes = 15; - */ - mapInt32Bytes: { [key: number]: Uint8Array }; - - /** - * @generated from field: map map_int32_enum = 16; - */ - mapInt32Enum: { [key: number]: MapEnum }; - - /** - * @generated from field: map map_int32_foreign_message = 17; - */ - mapInt32ForeignMessage: { [key: number]: ForeignMessage }; -}; - -// Describes the message protobuf_unittest.TestArenaMap. -// Use `create(TestArenaMapDesc)` to create a new TestArenaMap. -export const TestArenaMapDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 5); - -/** - * Previously, message containing enum called Type cannot be used as value of - * map field. - * - * @generated from message protobuf_unittest.MessageContainingEnumCalledType - */ -export type MessageContainingEnumCalledType = Message<"protobuf_unittest.MessageContainingEnumCalledType"> & { - /** - * @generated from field: map type = 1; - */ - type: { [key: string]: MessageContainingEnumCalledType }; -}; - -// Describes the message protobuf_unittest.MessageContainingEnumCalledType. -// Use `create(MessageContainingEnumCalledTypeDesc)` to create a new MessageContainingEnumCalledType. -export const MessageContainingEnumCalledTypeDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 6); - -/** - * @generated from enum protobuf_unittest.MessageContainingEnumCalledType.Type - */ -export enum MessageContainingEnumCalledType_Type { - /** - * @generated from enum value: TYPE_FOO = 0; - */ - FOO = 0, -} - -// Describes the enum protobuf_unittest.MessageContainingEnumCalledType.Type. -export const MessageContainingEnumCalledType_TypeDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_unittest, 6, 0); - -/** - * Previously, message cannot contain map field called "entry". - * - * @generated from message protobuf_unittest.MessageContainingMapCalledEntry - */ -export type MessageContainingMapCalledEntry = Message<"protobuf_unittest.MessageContainingMapCalledEntry"> & { - /** - * @generated from field: map entry = 1; - */ - entry: { [key: number]: number }; -}; - -// Describes the message protobuf_unittest.MessageContainingMapCalledEntry. -// Use `create(MessageContainingMapCalledEntryDesc)` to create a new MessageContainingMapCalledEntry. -export const MessageContainingMapCalledEntryDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 7); - -/** - * @generated from message protobuf_unittest.TestRecursiveMapMessage - */ -export type TestRecursiveMapMessage = Message<"protobuf_unittest.TestRecursiveMapMessage"> & { - /** - * @generated from field: map a = 1; - */ - a: { [key: string]: TestRecursiveMapMessage }; -}; - -// Describes the message protobuf_unittest.TestRecursiveMapMessage. -// Use `create(TestRecursiveMapMessageDesc)` to create a new TestRecursiveMapMessage. -export const TestRecursiveMapMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 8); - -/** - * @generated from message protobuf_unittest.TestI32StrMap - */ -export type TestI32StrMap = Message<"protobuf_unittest.TestI32StrMap"> & { - /** - * @generated from field: map m_32_str = 1; - */ - m32Str: { [key: number]: string }; -}; - -// Describes the message protobuf_unittest.TestI32StrMap. -// Use `create(TestI32StrMapDesc)` to create a new TestI32StrMap. -export const TestI32StrMapDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_map_unittest, 9); - -/** - * @generated from enum protobuf_unittest.MapEnum - */ -export enum MapEnum { - /** - * @generated from enum value: MAP_ENUM_FOO = 0; - */ - FOO = 0, - - /** - * @generated from enum value: MAP_ENUM_BAR = 1; - */ - BAR = 1, - - /** - * @generated from enum value: MAP_ENUM_BAZ = 2; - */ - BAZ = 2, -} - -// Describes the enum protobuf_unittest.MapEnum. -export const MapEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_map_unittest, 0); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/test_messages_proto2_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/test_messages_proto2_pb.ts index 6889c36b4..e59609d7f 100644 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/test_messages_proto2_pb.ts +++ b/packages/protobuf-test/src/gen/ts/google/protobuf/test_messages_proto2_pb.ts @@ -23,7 +23,7 @@ import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/cod import type { Message } from "@bufbuild/protobuf"; export const fileDesc_google_protobuf_test_messages_proto2: GenDescFile = /*@__PURE__*/ - fileDesc("Cipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzIucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yIu4+ChJUZXN0QWxsVHlwZXNQcm90bzISFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSYAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESTAoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzISFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSYAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGAoMcGFja2VkX2ludDMyGEsgAygFQgIQARIYCgxwYWNrZWRfaW50NjQYTCADKANCAhABEhkKDXBhY2tlZF91aW50MzIYTSADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYTiADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYVyADKAhCAhABElwKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQARIaCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGUgAygIQgIQABJeChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQABJdCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5El0KD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnkSYQoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnkSYQoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnkSYQoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnkSYQoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnkSZQoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5EmUKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJpChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmkKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSXQoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeRJfChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnkSWQoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5EmEKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5El8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeRJwChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJyChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EmoKFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EmwKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgNSAASXwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAASFAoKb25lb2ZfYm9vbBhzIAEoCEgAEhYKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUgASgCSAASFgoMb25lb2ZfZG91YmxlGHYgASgBSAASUgoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSAASRQoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YRIiCg1kZWZhdWx0X2ludDMyGPEBIAEoBToKLTEyMzQ1Njc4ORIsCg1kZWZhdWx0X2ludDY0GPIBIAEoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfdWludDY0GPQBIAEoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF9zaW50MzIY9QEgASgROgotMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODkSJAoPZGVmYXVsdF9maXhlZDMyGPcBIAEoBzoKMjEyMzQ1Njc4ORIuCg9kZWZhdWx0X2ZpeGVkNjQY+AEgASgGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIlChBkZWZhdWx0X3NmaXhlZDMyGPkBIAEoDzoKLTEyMzQ1Njc4ORIvChBkZWZhdWx0X3NmaXhlZDY0GPoBIAEoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODkSHQoNZGVmYXVsdF9mbG9hdBj7ASABKAI6BTllKzA5Eh4KDmRlZmF1bHRfZG91YmxlGPwBIAEoAToFN2UrMjISGwoMZGVmYXVsdF9ib29sGP0BIAEoCDoEdHJ1ZRIgCg5kZWZhdWx0X3N0cmluZxj+ASABKAk6B1Jvc2VidWQSHgoNZGVmYXVsdF9ieXRlcxj/ASABKAw6Bmpvc2h1YRITCgpmaWVsZG5hbWUxGJEDIAEoBRIUCgtmaWVsZF9uYW1lMhiSAyABKAUSFQoMX2ZpZWxkX25hbWUzGJMDIAEoBRIWCg1maWVsZF9fbmFtZTRfGJQDIAEoBRIUCgtmaWVsZDBuYW1lNRiVAyABKAUSFgoNZmllbGRfMF9uYW1lNhiWAyABKAUSEwoKZmllbGROYW1lNxiXAyABKAUSEwoKRmllbGROYW1lOBiYAyABKAUSFAoLZmllbGRfTmFtZTkYmQMgASgFEhUKDEZpZWxkX05hbWUxMBiaAyABKAUSFQoMRklFTERfTkFNRTExGJsDIAEoBRIVCgxGSUVMRF9uYW1lMTIYnAMgASgFEhcKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBRIXCg5fX0ZpZWxkX25hbWUxNBieAyABKAUSFgoNZmllbGRfX25hbWUxNRifAyABKAUSFgoNZmllbGRfX05hbWUxNhigAyABKAUSFwoOZmllbGRfbmFtZTE3X18YoQMgASgFEhcKDkZpZWxkX25hbWUxOF9fGKIDIAEoBRpiCg1OZXN0ZWRNZXNzYWdlEgkKAWEYASABKAUSRgoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo1ChNNYXBTdHJpbmdCeXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEafgobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJOCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlOgI4ARpzChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJCCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yOgI4ARp4ChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSCwoDa2V5GAEgASgJEksKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW06AjgBGm0KGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSCwoDa2V5GAEgASgJEj8KBXZhbHVlGAIgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzI6AjgBGjMKBERhdGESFAoLZ3JvdXBfaW50MzIYygEgASgFEhUKDGdyb3VwX3VpbnQzMhjLASABKA0aIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARr1AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEgsKA3N0chgZIAEoCTLIAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGvQBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISCQoBaRgJIAEoBTLJAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiEKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgkKAWMYASABKAUiwQIKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxIXCg5vcHRpb25hbF9pbnQzMhjpByABKAUSGAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCRJMCg5uZXN0ZWRfbWVzc2FnZRjrByABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaCg1vcHRpb25hbGdyb3VwGOwHIAEoCjJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlVua25vd25Ub1Rlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwEhYKDW9wdGlvbmFsX2Jvb2wY7gcgASgIEhcKDnJlcGVhdGVkX2ludDMyGPMHIAMoBRoaCg1PcHRpb25hbEdyb3VwEgkKAWEYASABKAUiFgoUTnVsbEh5cG90aGVzaXNQcm90bzIiLwoORW51bU9ubHlQcm90bzIiHQoEQm9vbBIKCgZrRmFsc2UQABIJCgVrVHJ1ZRABIh8KD09uZVN0cmluZ1Byb3RvMhIMCgRkYXRhGAEgASgJIkYKEVByb3RvV2l0aEtleXdvcmRzEg4KBmlubGluZRgBIAEoBRIPCgdjb25jZXB0GAIgASgJEhAKCHJlcXVpcmVzGAMgAygJIogUChpUZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhIWCg5yZXF1aXJlZF9pbnQzMhgBIAIoBRIWCg5yZXF1aXJlZF9pbnQ2NBgCIAIoAxIXCg9yZXF1aXJlZF91aW50MzIYAyACKA0SFwoPcmVxdWlyZWRfdWludDY0GAQgAigEEhcKD3JlcXVpcmVkX3NpbnQzMhgFIAIoERIXCg9yZXF1aXJlZF9zaW50NjQYBiACKBISGAoQcmVxdWlyZWRfZml4ZWQzMhgHIAIoBxIYChByZXF1aXJlZF9maXhlZDY0GAggAigGEhkKEXJlcXVpcmVkX3NmaXhlZDMyGAkgAigPEhkKEXJlcXVpcmVkX3NmaXhlZDY0GAogAigQEhYKDnJlcXVpcmVkX2Zsb2F0GAsgAigCEhcKD3JlcXVpcmVkX2RvdWJsZRgMIAIoARIVCg1yZXF1aXJlZF9ib29sGA0gAigIEhcKD3JlcXVpcmVkX3N0cmluZxgOIAIoCRIWCg5yZXF1aXJlZF9ieXRlcxgPIAIoDBJoChdyZXF1aXJlZF9uZXN0ZWRfbWVzc2FnZRgSIAIoCzJHLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2USVQoYcmVxdWlyZWRfZm9yZWlnbl9tZXNzYWdlGBMgAigLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzISYgoUcmVxdWlyZWRfbmVzdGVkX2VudW0YFSACKA4yRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcXVpcmVkX2ZvcmVpZ25fZW51bRgWIAIoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcXVpcmVkX3N0cmluZ19waWVjZRgYIAIoCUICCAISGQoNcmVxdWlyZWRfY29yZBgZIAIoCUICCAESVAoRcmVjdXJzaXZlX21lc3NhZ2UYGyACKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhJdChpvcHRpb25hbF9yZWN1cnNpdmVfbWVzc2FnZRgcIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yEk0KBGRhdGEYyQEgAigKMj4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuRGF0YRIiCg1kZWZhdWx0X2ludDMyGPEBIAIoBToKLTEyMzQ1Njc4ORIsCg1kZWZhdWx0X2ludDY0GPIBIAIoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF91aW50MzIY8wEgAigNOgoyMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfdWludDY0GPQBIAIoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSIwoOZGVmYXVsdF9zaW50MzIY9QEgAigROgotMTIzNDU2Nzg5Ei0KDmRlZmF1bHRfc2ludDY0GPYBIAIoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODkSJAoPZGVmYXVsdF9maXhlZDMyGPcBIAIoBzoKMjEyMzQ1Njc4ORIuCg9kZWZhdWx0X2ZpeGVkNjQY+AEgAigGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIlChBkZWZhdWx0X3NmaXhlZDMyGPkBIAIoDzoKLTEyMzQ1Njc4ORIvChBkZWZhdWx0X3NmaXhlZDY0GPoBIAIoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODkSHQoNZGVmYXVsdF9mbG9hdBj7ASACKAI6BTllKzA5Eh4KDmRlZmF1bHRfZG91YmxlGPwBIAIoAToFN2UrMjISGwoMZGVmYXVsdF9ib29sGP0BIAIoCDoEdHJ1ZRIgCg5kZWZhdWx0X3N0cmluZxj+ASACKAk6B1Jvc2VidWQSHgoNZGVmYXVsdF9ieXRlcxj/ASACKAw6Bmpvc2h1YRrDAQoNTmVzdGVkTWVzc2FnZRIJCgFhGAEgAigFEk4KC2NvcmVjdXJzaXZlGAIgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISVwoUb3B0aW9uYWxfY29yZWN1cnNpdmUYAyABKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhozCgREYXRhEhQKC2dyb3VwX2ludDMyGMoBIAIoBRIVCgxncm91cF91aW50MzIYywEgAigNGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEahQIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRILCgNzdHIYGSACKAky2AEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyVS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjFSE21lc3NhZ2VTZXRFeHRlbnNpb24ahAIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMhIJCgFpGAkgAigFMtkBChVtZXNzYWdlX3NldF9leHRlbnNpb24SSy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJVLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUoGCOgHEJBOKkYKEUZvcmVpZ25FbnVtUHJvdG8yEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACOloKD2V4dGVuc2lvbl9pbnQzMhIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMhh4IAEoBVIOZXh0ZW5zaW9uSW50MzJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMkgB+AEBogIGUHJvdG8y"); + fileDesc("Cipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzIucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yIpdAChJUZXN0QWxsVHlwZXNQcm90bzISFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSYAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESTAoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzISFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSYAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZRJVChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMhJaChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtEk8KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGAoMcGFja2VkX2ludDMyGEsgAygFQgIQARIYCgxwYWNrZWRfaW50NjQYTCADKANCAhABEhkKDXBhY2tlZF91aW50MzIYTSADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYTiADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYVyADKAhCAhABElwKEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQARIaCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGUgAygIQgIQABJeChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQABJdCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5El0KD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnkSYQoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnkSYQoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnkSYQoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnkSYQoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnkSZQoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5EmUKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJpChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmkKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSXQoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeRJfChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnkSWQoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5EmEKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5El8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeRJwChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJyChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EmoKFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EmwKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgNSAASXwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAASFAoKb25lb2ZfYm9vbBhzIAEoCEgAEhYKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUgASgCSAASFgoMb25lb2ZfZG91YmxlGHYgASgBSAASUgoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSAASRQoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YRJjChNtdWx0aXdvcmRncm91cGZpZWxkGMwBIAEoCjJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NdWx0aVdvcmRHcm91cEZpZWxkEiIKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5EiwKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3VpbnQzMhjzASABKA06CjIxMjM0NTY3ODkSLQoOZGVmYXVsdF91aW50NjQY9AEgASgEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4ORIjCg5kZWZhdWx0X3NpbnQzMhj1ASABKBE6Ci0xMjM0NTY3ODkSLQoOZGVmYXVsdF9zaW50NjQY9gEgASgSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIkCg9kZWZhdWx0X2ZpeGVkMzIY9wEgASgHOgoyMTIzNDU2Nzg5Ei4KD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5EiUKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ei8KEGRlZmF1bHRfc2ZpeGVkNjQY+gEgASgQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4ORIdCg1kZWZhdWx0X2Zsb2F0GPsBIAEoAjoFOWUrMDkSHgoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMhIbCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlEiAKDmRlZmF1bHRfc3RyaW5nGP4BIAEoCToHUm9zZWJ1ZBIeCg1kZWZhdWx0X2J5dGVzGP8BIAEoDDoGam9zaHVhEhMKCmZpZWxkbmFtZTEYkQMgASgFEhQKC2ZpZWxkX25hbWUyGJIDIAEoBRIVCgxfZmllbGRfbmFtZTMYkwMgASgFEhYKDWZpZWxkX19uYW1lNF8YlAMgASgFEhQKC2ZpZWxkMG5hbWU1GJUDIAEoBRIWCg1maWVsZF8wX25hbWU2GJYDIAEoBRITCgpmaWVsZE5hbWU3GJcDIAEoBRITCgpGaWVsZE5hbWU4GJgDIAEoBRIUCgtmaWVsZF9OYW1lORiZAyABKAUSFQoMRmllbGRfTmFtZTEwGJoDIAEoBRIVCgxGSUVMRF9OQU1FMTEYmwMgASgFEhUKDEZJRUxEX25hbWUxMhicAyABKAUSFwoOX19maWVsZF9uYW1lMTMYnQMgASgFEhcKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBRIWCg1maWVsZF9fbmFtZTE1GJ8DIAEoBRIWCg1maWVsZF9fTmFtZTE2GKADIAEoBRIXCg5maWVsZF9uYW1lMTdfXxihAyABKAUSFwoORmllbGRfbmFtZTE4X18YogMgASgFGmIKDU5lc3RlZE1lc3NhZ2USCQoBYRgBIAEoBRJGCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMho0ChJNYXBJbnQzMkludDMyRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ARo0ChJNYXBJbnQ2NEludDY0RW50cnkSCwoDa2V5GAEgASgDEg0KBXZhbHVlGAIgASgDOgI4ARo2ChRNYXBVaW50MzJVaW50MzJFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EgsKA2tleRgBIAEoBBINCgV2YWx1ZRgCIAEoBDoCOAEaNgoUTWFwU2ludDMyU2ludDMyRW50cnkSCwoDa2V5GAEgASgREg0KBXZhbHVlGAIgASgROgI4ARo2ChRNYXBTaW50NjRTaW50NjRFbnRyeRILCgNrZXkYASABKBISDQoFdmFsdWUYAiABKBI6AjgBGjgKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSCwoDa2V5GAEgASgHEg0KBXZhbHVlGAIgASgHOgI4ARo4ChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoBhINCgV2YWx1ZRgCIAEoBjoCOAEaOgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoDxINCgV2YWx1ZRgCIAEoDzoCOAEaOgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EgsKA2tleRgBIAEoEBINCgV2YWx1ZRgCIAEoEDoCOAEaNAoSTWFwSW50MzJGbG9hdEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoAjoCOAEaNQoTTWFwSW50MzJEb3VibGVFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAE6AjgBGjIKEE1hcEJvb2xCb29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVlGAIgASgIOgI4ARo2ChRNYXBTdHJpbmdTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjUKE01hcFN0cmluZ0J5dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ARp+ChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEk4KBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2U6AjgBGnMKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSCwoDa2V5GAEgASgJEkIKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzI6AjgBGngKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRILCgNrZXkYASABKAkSSwoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bToCOAEabQoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRILCgNrZXkYASABKAkSPwoFdmFsdWUYAiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMjoCOAEaMwoERGF0YRIUCgtncm91cF9pbnQzMhjKASABKAUSFQoMZ3JvdXBfdWludDMyGMsBIAEoDRpCChNNdWx0aVdvcmRHcm91cEZpZWxkEhQKC2dyb3VwX2ludDMyGM0BIAEoBRIVCgxncm91cF91aW50MzIYzgEgASgNGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEa9QEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRILCgNzdHIYGSABKAkyyAEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhr0AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgkKAWkYCSABKAUyyQEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFCDQoLb25lb2ZfZmllbGRKBgjoBxCQTiIhChRGb3JlaWduTWVzc2FnZVByb3RvMhIJCgFjGAEgASgFIjcKCkdyb3VwRmllbGQSEwoLZ3JvdXBfaW50MzIYeiABKAUSFAoMZ3JvdXBfdWludDMyGHsgASgNIsECChVVbmtub3duVG9UZXN0QWxsVHlwZXMSFwoOb3B0aW9uYWxfaW50MzIY6QcgASgFEhgKD29wdGlvbmFsX3N0cmluZxjqByABKAkSTAoObmVzdGVkX21lc3NhZ2UY6wcgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzISWgoNb3B0aW9uYWxncm91cBjsByABKAoyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Vbmtub3duVG9UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cBIWCg1vcHRpb25hbF9ib29sGO4HIAEoCBIXCg5yZXBlYXRlZF9pbnQzMhjzByADKAUaGgoNT3B0aW9uYWxHcm91cBIJCgFhGAEgASgFIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8yIi8KDkVudW1Pbmx5UHJvdG8yIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASIfCg9PbmVTdHJpbmdQcm90bzISDAoEZGF0YRgBIAEoCSJGChFQcm90b1dpdGhLZXl3b3JkcxIOCgZpbmxpbmUYASABKAUSDwoHY29uY2VwdBgCIAEoCRIQCghyZXF1aXJlcxgDIAMoCSKIFAoaVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISFgoOcmVxdWlyZWRfaW50MzIYASACKAUSFgoOcmVxdWlyZWRfaW50NjQYAiACKAMSFwoPcmVxdWlyZWRfdWludDMyGAMgAigNEhcKD3JlcXVpcmVkX3VpbnQ2NBgEIAIoBBIXCg9yZXF1aXJlZF9zaW50MzIYBSACKBESFwoPcmVxdWlyZWRfc2ludDY0GAYgAigSEhgKEHJlcXVpcmVkX2ZpeGVkMzIYByACKAcSGAoQcmVxdWlyZWRfZml4ZWQ2NBgIIAIoBhIZChFyZXF1aXJlZF9zZml4ZWQzMhgJIAIoDxIZChFyZXF1aXJlZF9zZml4ZWQ2NBgKIAIoEBIWCg5yZXF1aXJlZF9mbG9hdBgLIAIoAhIXCg9yZXF1aXJlZF9kb3VibGUYDCACKAESFQoNcmVxdWlyZWRfYm9vbBgNIAIoCBIXCg9yZXF1aXJlZF9zdHJpbmcYDiACKAkSFgoOcmVxdWlyZWRfYnl0ZXMYDyACKAwSaAoXcmVxdWlyZWRfbmVzdGVkX21lc3NhZ2UYEiACKAsyRy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlElUKGHJlcXVpcmVkX2ZvcmVpZ25fbWVzc2FnZRgTIAIoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yEmIKFHJlcXVpcmVkX25lc3RlZF9lbnVtGBUgAigOMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkRW51bRJPChVyZXF1aXJlZF9mb3JlaWduX2VudW0YFiACKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMhIhChVyZXF1aXJlZF9zdHJpbmdfcGllY2UYGCACKAlCAggCEhkKDXJlcXVpcmVkX2NvcmQYGSACKAlCAggBElQKEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISXQoab3B0aW9uYWxfcmVjdXJzaXZlX21lc3NhZ2UYHCABKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMhJNCgRkYXRhGMkBIAIoCjI+LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLkRhdGESIgoNZGVmYXVsdF9pbnQzMhjxASACKAU6Ci0xMjM0NTY3ODkSLAoNZGVmYXVsdF9pbnQ2NBjyASACKAM6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5EiMKDmRlZmF1bHRfdWludDMyGPMBIAIoDToKMjEyMzQ1Njc4ORItCg5kZWZhdWx0X3VpbnQ2NBj0ASACKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5EiMKDmRlZmF1bHRfc2ludDMyGPUBIAIoEToKLTEyMzQ1Njc4ORItCg5kZWZhdWx0X3NpbnQ2NBj2ASACKBI6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5EiQKD2RlZmF1bHRfZml4ZWQzMhj3ASACKAc6CjIxMjM0NTY3ODkSLgoPZGVmYXVsdF9maXhlZDY0GPgBIAIoBjoUMTAxMjM0NTY3ODkxMjM0NTY3ODkSJQoQZGVmYXVsdF9zZml4ZWQzMhj5ASACKA86Ci0xMjM0NTY3ODkSLwoQZGVmYXVsdF9zZml4ZWQ2NBj6ASACKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Eh0KDWRlZmF1bHRfZmxvYXQY+wEgAigCOgU5ZSswORIeCg5kZWZhdWx0X2RvdWJsZRj8ASACKAE6BTdlKzIyEhsKDGRlZmF1bHRfYm9vbBj9ASACKAg6BHRydWUSIAoOZGVmYXVsdF9zdHJpbmcY/gEgAigJOgdSb3NlYnVkEh4KDWRlZmF1bHRfYnl0ZXMY/wEgAigMOgZqb3NodWEawwEKDU5lc3RlZE1lc3NhZ2USCQoBYRgBIAIoBRJOCgtjb3JlY3Vyc2l2ZRgCIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yElcKFG9wdGlvbmFsX2NvcmVjdXJzaXZlGAMgASgLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIaMwoERGF0YRIUCgtncm91cF9pbnQzMhjKASACKAUSFQoMZ3JvdXBfdWludDMyGMsBIAIoDRohChFNZXNzYWdlU2V0Q29ycmVjdCoICAQQ/////wc6AggBGoUCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjESCwoDc3RyGBkgAigJMtgBChVtZXNzYWdlX3NldF9leHRlbnNpb24SSy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMlUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGoQCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISCQoBaRgJIAIoBTLZAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyVS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFKBgjoBxCQTipGChFGb3JlaWduRW51bVByb3RvMhIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjpaCg9leHRlbnNpb25faW50MzISMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeCABKAVSDmV4dGVuc2lvbkludDMyOnwKCmdyb3VwZmllbGQSMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeSABKAoyKS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Hcm91cEZpZWxkUgpncm91cGZpZWxkQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzJIAfgBAaICBlByb3RvMg"); /** * This proto includes every type of field in both singular and repeated @@ -561,6 +561,11 @@ export type TestAllTypesProto2 = Message<"protobuf_test_messages.proto2.TestAllT */ data?: TestAllTypesProto2_Data; + /** + * @generated from field: optional protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField multiwordgroupfield = 204; + */ + multiwordgroupfield?: TestAllTypesProto2_MultiWordGroupField; + /** * default values * @@ -779,6 +784,26 @@ export type TestAllTypesProto2_Data = Message<"protobuf_test_messages.proto2.Tes export const TestAllTypesProto2_DataDesc: GenDescMessage = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 1); +/** + * @generated from message protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField + */ +export type TestAllTypesProto2_MultiWordGroupField = Message<"protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField"> & { + /** + * @generated from field: optional int32 group_int32 = 205; + */ + groupInt32: number; + + /** + * @generated from field: optional uint32 group_uint32 = 206; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField. +// Use `create(TestAllTypesProto2_MultiWordGroupFieldDesc)` to create a new TestAllTypesProto2_MultiWordGroupField. +export const TestAllTypesProto2_MultiWordGroupFieldDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 2); + /** * message_set test case. * @@ -790,7 +815,7 @@ export type TestAllTypesProto2_MessageSetCorrect = Message<"protobuf_test_messag // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect. // Use `create(TestAllTypesProto2_MessageSetCorrectDesc)` to create a new TestAllTypesProto2_MessageSetCorrect. export const TestAllTypesProto2_MessageSetCorrectDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3); /** * @generated from message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 @@ -805,13 +830,13 @@ export type TestAllTypesProto2_MessageSetCorrectExtension1 = Message<"protobuf_t // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1. // Use `create(TestAllTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension1. export const TestAllTypesProto2_MessageSetCorrectExtension1Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; */ export const TestAllTypesProto2_MessageSetCorrectExtension1_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 3, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4, 0); /** * @generated from message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 @@ -826,13 +851,13 @@ export type TestAllTypesProto2_MessageSetCorrectExtension2 = Message<"protobuf_t // Describes the message protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2. // Use `create(TestAllTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllTypesProto2_MessageSetCorrectExtension2. export const TestAllTypesProto2_MessageSetCorrectExtension2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 5); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; */ export const TestAllTypesProto2_MessageSetCorrectExtension2_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 4, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 0, 5, 0); /** * @generated from enum protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum @@ -880,6 +905,26 @@ export type ForeignMessageProto2 = Message<"protobuf_test_messages.proto2.Foreig export const ForeignMessageProto2Desc: GenDescMessage = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_test_messages_proto2, 1); +/** + * @generated from message protobuf_test_messages.proto2.GroupField + */ +export type GroupField = Message<"protobuf_test_messages.proto2.GroupField"> & { + /** + * @generated from field: optional int32 group_int32 = 122; + */ + groupInt32: number; + + /** + * @generated from field: optional uint32 group_uint32 = 123; + */ + groupUint32: number; +}; + +// Describes the message protobuf_test_messages.proto2.GroupField. +// Use `create(GroupFieldDesc)` to create a new GroupField. +export const GroupFieldDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2); + /** * @generated from message protobuf_test_messages.proto2.UnknownToTestAllTypes */ @@ -918,7 +963,7 @@ export type UnknownToTestAllTypes = Message<"protobuf_test_messages.proto2.Unkno // Describes the message protobuf_test_messages.proto2.UnknownToTestAllTypes. // Use `create(UnknownToTestAllTypesDesc)` to create a new UnknownToTestAllTypes. export const UnknownToTestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3); /** * @generated from message protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup @@ -933,7 +978,7 @@ export type UnknownToTestAllTypes_OptionalGroup = Message<"protobuf_test_message // Describes the message protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup. // Use `create(UnknownToTestAllTypes_OptionalGroupDesc)` to create a new UnknownToTestAllTypes_OptionalGroup. export const UnknownToTestAllTypes_OptionalGroupDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 2, 0); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3, 0); /** * @generated from message protobuf_test_messages.proto2.NullHypothesisProto2 @@ -944,7 +989,7 @@ export type NullHypothesisProto2 = Message<"protobuf_test_messages.proto2.NullHy // Describes the message protobuf_test_messages.proto2.NullHypothesisProto2. // Use `create(NullHypothesisProto2Desc)` to create a new NullHypothesisProto2. export const NullHypothesisProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 4); /** * @generated from message protobuf_test_messages.proto2.EnumOnlyProto2 @@ -955,7 +1000,7 @@ export type EnumOnlyProto2 = Message<"protobuf_test_messages.proto2.EnumOnlyProt // Describes the message protobuf_test_messages.proto2.EnumOnlyProto2. // Use `create(EnumOnlyProto2Desc)` to create a new EnumOnlyProto2. export const EnumOnlyProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 5); /** * @generated from enum protobuf_test_messages.proto2.EnumOnlyProto2.Bool @@ -974,7 +1019,7 @@ export enum EnumOnlyProto2_Bool { // Describes the enum protobuf_test_messages.proto2.EnumOnlyProto2.Bool. export const EnumOnlyProto2_BoolDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_test_messages_proto2, 4, 0); + enumDesc(fileDesc_google_protobuf_test_messages_proto2, 5, 0); /** * @generated from message protobuf_test_messages.proto2.OneStringProto2 @@ -989,7 +1034,7 @@ export type OneStringProto2 = Message<"protobuf_test_messages.proto2.OneStringPr // Describes the message protobuf_test_messages.proto2.OneStringProto2. // Use `create(OneStringProto2Desc)` to create a new OneStringProto2. export const OneStringProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 5); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 6); /** * @generated from message protobuf_test_messages.proto2.ProtoWithKeywords @@ -1014,7 +1059,7 @@ export type ProtoWithKeywords = Message<"protobuf_test_messages.proto2.ProtoWith // Describes the message protobuf_test_messages.proto2.ProtoWithKeywords. // Use `create(ProtoWithKeywordsDesc)` to create a new ProtoWithKeywords. export const ProtoWithKeywordsDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 6); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2 @@ -1223,7 +1268,7 @@ export type TestAllRequiredTypesProto2 = Message<"protobuf_test_messages.proto2. // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2. // Use `create(TestAllRequiredTypesProto2Desc)` to create a new TestAllRequiredTypesProto2. export const TestAllRequiredTypesProto2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage @@ -1248,7 +1293,7 @@ export type TestAllRequiredTypesProto2_NestedMessage = Message<"protobuf_test_me // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage. // Use `create(TestAllRequiredTypesProto2_NestedMessageDesc)` to create a new TestAllRequiredTypesProto2_NestedMessage. export const TestAllRequiredTypesProto2_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 0); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 0); /** * groups @@ -1270,7 +1315,7 @@ export type TestAllRequiredTypesProto2_Data = Message<"protobuf_test_messages.pr // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.Data. // Use `create(TestAllRequiredTypesProto2_DataDesc)` to create a new TestAllRequiredTypesProto2_Data. export const TestAllRequiredTypesProto2_DataDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 1); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 1); /** * message_set test case. @@ -1283,7 +1328,7 @@ export type TestAllRequiredTypesProto2_MessageSetCorrect = Message<"protobuf_tes // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect. // Use `create(TestAllRequiredTypesProto2_MessageSetCorrectDesc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrect. export const TestAllRequiredTypesProto2_MessageSetCorrectDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 2); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 2); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 @@ -1298,13 +1343,13 @@ export type TestAllRequiredTypesProto2_MessageSetCorrectExtension1 = Message<"pr // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1. // Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension1. export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 3); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 3); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1 message_set_extension = 1547769; */ export const TestAllRequiredTypesProto2_MessageSetCorrectExtension1_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 3, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 3, 0); /** * @generated from message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 @@ -1319,13 +1364,13 @@ export type TestAllRequiredTypesProto2_MessageSetCorrectExtension2 = Message<"pr // Describes the message protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2. // Use `create(TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc)` to create a new TestAllRequiredTypesProto2_MessageSetCorrectExtension2. export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 4); + messageDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 4); /** * @generated from extension: optional protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2 message_set_extension = 4135312; */ export const TestAllRequiredTypesProto2_MessageSetCorrectExtension2_message_set_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 4, 0); + extDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 4, 0); /** * @generated from enum protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedEnum @@ -1356,7 +1401,7 @@ export enum TestAllRequiredTypesProto2_NestedEnum { // Describes the enum protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedEnum. export const TestAllRequiredTypesProto2_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_test_messages_proto2, 7, 0); + enumDesc(fileDesc_google_protobuf_test_messages_proto2, 8, 0); /** * @generated from enum protobuf_test_messages.proto2.ForeignEnumProto2 @@ -1388,3 +1433,9 @@ export const ForeignEnumProto2Desc: GenDescEnum = /*@__PURE__ export const extension_int32: GenDescExtension = /*@__PURE__*/ extDesc(fileDesc_google_protobuf_test_messages_proto2, 0); +/** + * @generated from extension: optional protobuf_test_messages.proto2.GroupField groupfield = 121; + */ +export const groupfield: GenDescExtension = /*@__PURE__*/ + extDesc(fileDesc_google_protobuf_test_messages_proto2, 1); + diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_features_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_features_pb.ts index 54d89920b..190fa0147 100644 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_features_pb.ts +++ b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_features_pb.ts @@ -23,7 +23,7 @@ import { fileDesc_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt"; import type { Message } from "@bufbuild/protobuf"; export const fileDesc_google_protobuf_unittest_features: GenDescFile = /*@__PURE__*/ - fileDesc("Cidnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZmVhdHVyZXMucHJvdG8SAnBiIrsBCgtUZXN0TWVzc2FnZRpZCgZOZXN0ZWQyTwoLdGVzdF9uZXN0ZWQSGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBiNTiABKAsyEC5wYi5UZXN0RmVhdHVyZXNSCnRlc3ROZXN0ZWQyUQoMdGVzdF9tZXNzYWdlEhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQYjk4gASgLMhAucGIuVGVzdEZlYXR1cmVzUgt0ZXN0TWVzc2FnZSL9CgoMVGVzdEZlYXR1cmVzElEKEGludF9maWxlX2ZlYXR1cmUYASABKAVCN4gBAZgBAaIBBxICLTIY5geiAQcSAi0zGOcHogEGEgExGOgHogEHEgEyGJ2NBqIBBxIBMxiejQYSNAobaW50X2V4dGVuc2lvbl9yYW5nZV9mZWF0dXJlGAIgASgFQg+IAQGYAQKiAQYSATEY5gcSLAoTaW50X21lc3NhZ2VfZmVhdHVyZRgDIAEoBUIPiAEBmAEDogEGEgExGOYHEioKEWludF9maWVsZF9mZWF0dXJlGAQgASgFQg+IAQGYAQSiAQYSATEY5gcSKgoRaW50X29uZW9mX2ZlYXR1cmUYBSABKAVCD4gBAZgBBaIBBhIBMRjmBxIpChBpbnRfZW51bV9mZWF0dXJlGAYgASgFQg+IAQGYAQaiAQYSATEY5gcSLwoWaW50X2VudW1fZW50cnlfZmVhdHVyZRgHIAEoBUIPiAEBmAEHogEGEgExGOYHEiwKE2ludF9zZXJ2aWNlX2ZlYXR1cmUYCCABKAVCD4gBAZgBCKIBBhIBMRjmBxIrChJpbnRfbWV0aG9kX2ZlYXR1cmUYCSABKAVCD4gBAZgBCaIBBhIBMRjmBxJFChRpbnRfbXVsdGlwbGVfZmVhdHVyZRgKIAEoBUIniAEBmAEBmAEEmAEDmAEGmAEHmAEImAEJmAEFmAECogEGEgExGOYHEjwKEmJvb2xfZmllbGRfZmVhdHVyZRgLIAEoCEIgiAEBmAEEogEKEgVmYWxzZRjmB6IBChIEdHJ1ZRidjQYSOgoTZmxvYXRfZmllbGRfZmVhdHVyZRgMIAEoAkIdiAEBmAEEogEIEgMxLjEY5geiAQkSAzEuMhidjQYSzAEKFW1lc3NhZ2VfZmllbGRfZmVhdHVyZRgNIAEoCzIfLnBiLlRlc3RGZWF0dXJlcy5NZXNzYWdlRmVhdHVyZUKLAYgBAZgBBKIBEhIMaW50X2ZpZWxkOiAyGJ2NBqIBGhIUc3RyaW5nX2ZpZWxkOiAnMjAyNCcYno0GogFIEkNib29sX2ZpZWxkOiB0cnVlIGludF9maWVsZDogMSBmbG9hdF9maWVsZDogMS41IHN0cmluZ19maWVsZDogJzIwMjMnGOgHogEFEgAY5gcSnAEKEmVudW1fZmllbGRfZmVhdHVyZRgOIAEoDjIcLnBiLlRlc3RGZWF0dXJlcy5FbnVtRmVhdHVyZUJiiAEBmAEEogEeEhlURVNUX0VOVU1fRkVBVFVSRV9VTktOT1dOGOYHogEQEgtFTlVNX1ZBTFVFMRjoB6IBERILRU5VTV9WQUxVRTIYnY0GogEREgtFTlVNX1ZBTFVFMxiejQYSQwoSaW50X3NvdXJjZV9mZWF0dXJlGA8gASgFQieIAQKYAQGYAQSYAQOYAQaYAQeYAQiYAQmYAQWYAQKiAQYSATEY5gcSSwoVc3RyaW5nX3NvdXJjZV9mZWF0dXJlGBAgASgJQiyIAQKYAQGYAQSYAQOYAQaYAQeYAQiYAQmYAQWYAQKiAQsSBicyMDIzJxjmBxpiCg5NZXNzYWdlRmVhdHVyZRISCgpib29sX2ZpZWxkGAEgASgIEhEKCWludF9maWVsZBgCIAEoBRITCgtmbG9hdF9maWVsZBgDIAEoAhIUCgxzdHJpbmdfZmllbGQYBCABKAkigQEKC0VudW1GZWF0dXJlEh0KGVRFU1RfRU5VTV9GRUFUVVJFX1VOS05PV04QABIPCgtFTlVNX1ZBTFVFMRABEg8KC0VOVU1fVkFMVUUyEAISDwoLRU5VTV9WQUxVRTMQAxIPCgtFTlVNX1ZBTFVFNBAEEg8KC0VOVU1fVkFMVUU1EAU6QgoEdGVzdBIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0GI9OIAEoCzIQLnBiLlRlc3RGZWF0dXJlc1IEdGVzdA", [fileDesc_google_protobuf_descriptor]); + fileDesc("Cidnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZmVhdHVyZXMucHJvdG8SAnBiIrsBCgtUZXN0TWVzc2FnZRpZCgZOZXN0ZWQyTwoLdGVzdF9uZXN0ZWQSGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBiNTiABKAsyEC5wYi5UZXN0RmVhdHVyZXNSCnRlc3ROZXN0ZWQyUQoMdGVzdF9tZXNzYWdlEhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQYjk4gASgLMhAucGIuVGVzdEZlYXR1cmVzUgt0ZXN0TWVzc2FnZSLbCgoMVGVzdEZlYXR1cmVzEnsKDGZpbGVfZmVhdHVyZRgBIAEoDjIPLnBiLkVudW1GZWF0dXJlQlSIAQGYAQGiAQsSBlZBTFVFMRiEB6IBCxIGVkFMVUUyGOcHogELEgZWQUxVRTMY6AeiAQwSBlZBTFVFNBidjQaiAQwSBlZBTFVFNRiejQayAQMI6AcSTAoXZXh0ZW5zaW9uX3JhbmdlX2ZlYXR1cmUYAiABKA4yDy5wYi5FbnVtRmVhdHVyZUIaiAEBmAECogELEgZWQUxVRTEYhAeyAQMI6AcSRAoPbWVzc2FnZV9mZWF0dXJlGAMgASgOMg8ucGIuRW51bUZlYXR1cmVCGogBAZgBA6IBCxIGVkFMVUUxGIQHsgEDCOgHEkIKDWZpZWxkX2ZlYXR1cmUYBCABKA4yDy5wYi5FbnVtRmVhdHVyZUIaiAEBmAEEogELEgZWQUxVRTEYhAeyAQMI6AcSQgoNb25lb2ZfZmVhdHVyZRgFIAEoDjIPLnBiLkVudW1GZWF0dXJlQhqIAQGYAQWiAQsSBlZBTFVFMRiEB7IBAwjoBxJBCgxlbnVtX2ZlYXR1cmUYBiABKA4yDy5wYi5FbnVtRmVhdHVyZUIaiAEBmAEGogELEgZWQUxVRTEYhAeyAQMI6AcSRwoSZW51bV9lbnRyeV9mZWF0dXJlGAcgASgOMg8ucGIuRW51bUZlYXR1cmVCGogBAZgBB6IBCxIGVkFMVUUxGIQHsgEDCOgHEkQKD3NlcnZpY2VfZmVhdHVyZRgIIAEoDjIPLnBiLkVudW1GZWF0dXJlQhqIAQGYAQiiAQsSBlZBTFVFMRiEB7IBAwjoBxJDCg5tZXRob2RfZmVhdHVyZRgJIAEoDjIPLnBiLkVudW1GZWF0dXJlQhqIAQGYAQmiAQsSBlZBTFVFMRiEB7IBAwjoBxJdChBtdWx0aXBsZV9mZWF0dXJlGAogASgOMg8ucGIuRW51bUZlYXR1cmVCMogBAZgBAZgBBJgBA5gBBpgBB5gBCJgBCZgBBZgBAqIBCxIGVkFMVUUxGIQHsgEDCOgHEkIKEmJvb2xfZmllbGRfZmVhdHVyZRgLIAEoCEImiAEBmAEEogEKEgVmYWxzZRiEB6IBChIEdHJ1ZRidjQayAQMI6AcSWwoOc291cmNlX2ZlYXR1cmUYDyABKA4yDy5wYi5FbnVtRmVhdHVyZUIyiAECmAEBmAEEmAEDmAEGmAEHmAEImAEJmAEFmAECogELEgZWQUxVRTEYhAeyAQMI6AcSXAoPc291cmNlX2ZlYXR1cmUyGBAgASgOMg8ucGIuRW51bUZlYXR1cmVCMogBApgBAZgBBJgBA5gBBpgBB5gBCJgBCZgBBZgBAqIBCxIGVkFMVUUxGIQHsgEDCOgHEo0BCg9yZW1vdmVkX2ZlYXR1cmUYESABKA4yDy5wYi5FbnVtRmVhdHVyZUJjiAEBmAEBmAEEogELEgZWQUxVRTEYhAeiAQsSBlZBTFVFMhjoB6IBCxIGVkFMVUUzGOkHsgEtCOgHEOgHGiJDdXN0b20gZmVhdHVyZSBkZXByZWNhdGlvbiB3YXJuaW5nIOkHElQKDmZ1dHVyZV9mZWF0dXJlGBIgASgOMg8ucGIuRW51bUZlYXR1cmVCK4gBAZgBAZgBBKIBCxIGVkFMVUUxGIQHogELEgZWQUxVRTIY6QeyAQMI6QcSVwoObGVnYWN5X2ZlYXR1cmUYEyABKA4yDy5wYi5FbnVtRmVhdHVyZUIuiAEBmAEBmAEEogELEgZWQUxVRTEYhAeiAQsSBlZBTFVFMhjoB7IBBgjmByDoByrmAQoLRW51bUZlYXR1cmUSHQoZVEVTVF9FTlVNX0ZFQVRVUkVfVU5LTk9XThAAEgoKBlZBTFVFMRABEgoKBlZBTFVFMhACEgoKBlZBTFVFMxADEgoKBlZBTFVFNBAEEgoKBlZBTFVFNRAFEgoKBlZBTFVFNhAGEgoKBlZBTFVFNxAHEgoKBlZBTFVFOBAIEgoKBlZBTFVFORAJEgsKB1ZBTFVFMTAQChILCgdWQUxVRTExEAsSCwoHVkFMVUUxMhAMEgsKB1ZBTFVFMTMQDRILCgdWQUxVRTE0EA4SCwoHVkFMVUUxNRAPOkIKBHRlc3QSGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBiPTiABKAsyEC5wYi5UZXN0RmVhdHVyZXNSBHRlc3Q", [fileDesc_google_protobuf_descriptor]); /** * @generated from message pb.TestMessage @@ -64,54 +64,54 @@ export const TestMessage_test_message: GenDescExtension & { /** - * @generated from field: optional int32 int_file_feature = 1; + * @generated from field: optional pb.EnumFeature file_feature = 1; */ - intFileFeature: number; + fileFeature: EnumFeature; /** - * @generated from field: optional int32 int_extension_range_feature = 2; + * @generated from field: optional pb.EnumFeature extension_range_feature = 2; */ - intExtensionRangeFeature: number; + extensionRangeFeature: EnumFeature; /** - * @generated from field: optional int32 int_message_feature = 3; + * @generated from field: optional pb.EnumFeature message_feature = 3; */ - intMessageFeature: number; + messageFeature: EnumFeature; /** - * @generated from field: optional int32 int_field_feature = 4; + * @generated from field: optional pb.EnumFeature field_feature = 4; */ - intFieldFeature: number; + fieldFeature: EnumFeature; /** - * @generated from field: optional int32 int_oneof_feature = 5; + * @generated from field: optional pb.EnumFeature oneof_feature = 5; */ - intOneofFeature: number; + oneofFeature: EnumFeature; /** - * @generated from field: optional int32 int_enum_feature = 6; + * @generated from field: optional pb.EnumFeature enum_feature = 6; */ - intEnumFeature: number; + enumFeature: EnumFeature; /** - * @generated from field: optional int32 int_enum_entry_feature = 7; + * @generated from field: optional pb.EnumFeature enum_entry_feature = 7; */ - intEnumEntryFeature: number; + enumEntryFeature: EnumFeature; /** - * @generated from field: optional int32 int_service_feature = 8; + * @generated from field: optional pb.EnumFeature service_feature = 8; */ - intServiceFeature: number; + serviceFeature: EnumFeature; /** - * @generated from field: optional int32 int_method_feature = 9; + * @generated from field: optional pb.EnumFeature method_feature = 9; */ - intMethodFeature: number; + methodFeature: EnumFeature; /** - * @generated from field: optional int32 int_multiple_feature = 10; + * @generated from field: optional pb.EnumFeature multiple_feature = 10; */ - intMultipleFeature: number; + multipleFeature: EnumFeature; /** * @generated from field: optional bool bool_field_feature = 11; @@ -119,29 +119,29 @@ export type TestFeatures = Message<"pb.TestFeatures"> & { boolFieldFeature: boolean; /** - * @generated from field: optional float float_field_feature = 12; + * @generated from field: optional pb.EnumFeature source_feature = 15; */ - floatFieldFeature: number; + sourceFeature: EnumFeature; /** - * @generated from field: optional pb.TestFeatures.MessageFeature message_field_feature = 13; + * @generated from field: optional pb.EnumFeature source_feature2 = 16; */ - messageFieldFeature?: TestFeatures_MessageFeature; + sourceFeature2: EnumFeature; /** - * @generated from field: optional pb.TestFeatures.EnumFeature enum_field_feature = 14; + * @generated from field: optional pb.EnumFeature removed_feature = 17; */ - enumFieldFeature: TestFeatures_EnumFeature; + removedFeature: EnumFeature; /** - * @generated from field: optional int32 int_source_feature = 15; + * @generated from field: optional pb.EnumFeature future_feature = 18; */ - intSourceFeature: number; + futureFeature: EnumFeature; /** - * @generated from field: optional string string_source_feature = 16; + * @generated from field: optional pb.EnumFeature legacy_feature = 19; */ - stringSourceFeature: string; + legacyFeature: EnumFeature; }; // Describes the message pb.TestFeatures. @@ -150,73 +150,93 @@ export const TestFeaturesDesc: GenDescMessage = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_unittest_features, 1); /** - * @generated from message pb.TestFeatures.MessageFeature + * @generated from enum pb.EnumFeature */ -export type TestFeatures_MessageFeature = Message<"pb.TestFeatures.MessageFeature"> & { +export enum EnumFeature { /** - * @generated from field: optional bool bool_field = 1; + * @generated from enum value: TEST_ENUM_FEATURE_UNKNOWN = 0; */ - boolField: boolean; + TEST_ENUM_FEATURE_UNKNOWN = 0, /** - * @generated from field: optional int32 int_field = 2; + * @generated from enum value: VALUE1 = 1; */ - intField: number; + VALUE1 = 1, /** - * @generated from field: optional float float_field = 3; + * @generated from enum value: VALUE2 = 2; */ - floatField: number; + VALUE2 = 2, /** - * @generated from field: optional string string_field = 4; + * @generated from enum value: VALUE3 = 3; */ - stringField: string; -}; + VALUE3 = 3, -// Describes the message pb.TestFeatures.MessageFeature. -// Use `create(TestFeatures_MessageFeatureDesc)` to create a new TestFeatures_MessageFeature. -export const TestFeatures_MessageFeatureDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_features, 1, 0); + /** + * @generated from enum value: VALUE4 = 4; + */ + VALUE4 = 4, -/** - * @generated from enum pb.TestFeatures.EnumFeature - */ -export enum TestFeatures_EnumFeature { /** - * @generated from enum value: TEST_ENUM_FEATURE_UNKNOWN = 0; + * @generated from enum value: VALUE5 = 5; */ - TEST_ENUM_FEATURE_UNKNOWN = 0, + VALUE5 = 5, + + /** + * @generated from enum value: VALUE6 = 6; + */ + VALUE6 = 6, + + /** + * @generated from enum value: VALUE7 = 7; + */ + VALUE7 = 7, + + /** + * @generated from enum value: VALUE8 = 8; + */ + VALUE8 = 8, + + /** + * @generated from enum value: VALUE9 = 9; + */ + VALUE9 = 9, + + /** + * @generated from enum value: VALUE10 = 10; + */ + VALUE10 = 10, /** - * @generated from enum value: ENUM_VALUE1 = 1; + * @generated from enum value: VALUE11 = 11; */ - ENUM_VALUE1 = 1, + VALUE11 = 11, /** - * @generated from enum value: ENUM_VALUE2 = 2; + * @generated from enum value: VALUE12 = 12; */ - ENUM_VALUE2 = 2, + VALUE12 = 12, /** - * @generated from enum value: ENUM_VALUE3 = 3; + * @generated from enum value: VALUE13 = 13; */ - ENUM_VALUE3 = 3, + VALUE13 = 13, /** - * @generated from enum value: ENUM_VALUE4 = 4; + * @generated from enum value: VALUE14 = 14; */ - ENUM_VALUE4 = 4, + VALUE14 = 14, /** - * @generated from enum value: ENUM_VALUE5 = 5; + * @generated from enum value: VALUE15 = 15; */ - ENUM_VALUE5 = 5, + VALUE15 = 15, } -// Describes the enum pb.TestFeatures.EnumFeature. -export const TestFeatures_EnumFeatureDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_features, 1, 0); +// Describes the enum pb.EnumFeature. +export const EnumFeatureDesc: GenDescEnum = /*@__PURE__*/ + enumDesc(fileDesc_google_protobuf_unittest_features, 0); /** * @generated from extension: optional pb.TestFeatures test = 9999; diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_import_lite_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_import_lite_pb.ts deleted file mode 100644 index c940ea515..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_import_lite_pb.ts +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// -// This is like unittest_import.proto but with optimize_for = LITE_RUNTIME. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/unittest_import_lite.proto (package protobuf_unittest_import, syntax proto2) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc_google_protobuf_unittest_import_public_lite } from "./unittest_import_public_lite_pb.js"; -import type { Message } from "@bufbuild/protobuf"; - -export const fileDesc_google_protobuf_unittest_import_lite: GenDescFile = /*@__PURE__*/ - fileDesc("Cipnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X2xpdGUucHJvdG8SGHByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydCIeChFJbXBvcnRNZXNzYWdlTGl0ZRIJCgFkGAEgASgFKk8KDkltcG9ydEVudW1MaXRlEhMKD0lNUE9SVF9MSVRFX0ZPTxAHEhMKD0lNUE9SVF9MSVRFX0JBUhAIEhMKD0lNUE9SVF9MSVRFX0JBWhAJQhcKE2NvbS5nb29nbGUucHJvdG9idWZIA1AA", [fileDesc_google_protobuf_unittest_import_public_lite]); - -/** - * @generated from message protobuf_unittest_import.ImportMessageLite - */ -export type ImportMessageLite = Message<"protobuf_unittest_import.ImportMessageLite"> & { - /** - * @generated from field: optional int32 d = 1; - */ - d: number; -}; - -// Describes the message protobuf_unittest_import.ImportMessageLite. -// Use `create(ImportMessageLiteDesc)` to create a new ImportMessageLite. -export const ImportMessageLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_import_lite, 0); - -/** - * @generated from enum protobuf_unittest_import.ImportEnumLite - */ -export enum ImportEnumLite { - /** - * @generated from enum value: IMPORT_LITE_FOO = 7; - */ - IMPORT_LITE_FOO = 7, - - /** - * @generated from enum value: IMPORT_LITE_BAR = 8; - */ - IMPORT_LITE_BAR = 8, - - /** - * @generated from enum value: IMPORT_LITE_BAZ = 9; - */ - IMPORT_LITE_BAZ = 9, -} - -// Describes the enum protobuf_unittest_import.ImportEnumLite. -export const ImportEnumLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_import_lite, 0); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_import_public_lite_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_import_public_lite_pb.ts deleted file mode 100644 index 7e89b28ef..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_import_public_lite_pb.ts +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: liujisi@google.com (Pherl Liu) - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/unittest_import_public_lite.proto (package protobuf_unittest_import, syntax proto2) -/* eslint-disable */ - -import type { GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import type { Message } from "@bufbuild/protobuf"; - -export const fileDesc_google_protobuf_unittest_import_public_lite: GenDescFile = /*@__PURE__*/ - fileDesc("CjFnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X3B1YmxpY19saXRlLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiJAoXUHVibGljSW1wb3J0TWVzc2FnZUxpdGUSCQoBZRgBIAEoBUIXChNjb20uZ29vZ2xlLnByb3RvYnVmSAM"); - -/** - * @generated from message protobuf_unittest_import.PublicImportMessageLite - */ -export type PublicImportMessageLite = Message<"protobuf_unittest_import.PublicImportMessageLite"> & { - /** - * @generated from field: optional int32 e = 1; - */ - e: number; -}; - -// Describes the message protobuf_unittest_import.PublicImportMessageLite. -// Use `create(PublicImportMessageLiteDesc)` to create a new PublicImportMessageLite. -export const PublicImportMessageLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_import_public_lite, 0); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_lite_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_lite_pb.ts deleted file mode 100644 index a534cf0fb..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_lite_pb.ts +++ /dev/null @@ -1,1931 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// Author: kenton@google.com (Kenton Varda) -// -// This is like unittest.proto but with optimize_for = LITE_RUNTIME. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/unittest_lite.proto (package protobuf_unittest, syntax proto2) -/* eslint-disable */ - -import type { GenDescEnum, GenDescExtension, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, extDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import type { ImportEnumLite, ImportMessageLite } from "./unittest_import_lite_pb.js"; -import { fileDesc_google_protobuf_unittest_import_lite } from "./unittest_import_lite_pb.js"; -import type { Message } from "@bufbuild/protobuf"; -import type { PublicImportMessageLite } from "./unittest_import_public_lite_pb.js"; - -export const fileDesc_google_protobuf_unittest_lite: GenDescFile = /*@__PURE__*/ - fileDesc("CiNnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfbGl0ZS5wcm90bxIRcHJvdG9idWZfdW5pdHRlc3QiqRwKEFRlc3RBbGxUeXBlc0xpdGUSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSSAoNb3B0aW9uYWxncm91cBgQIAEoCjIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuT3B0aW9uYWxHcm91cBJSChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkTWVzc2FnZRJHChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZUxpdGUSTAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZUxpdGUSTAoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZEVudW0SQQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlEkYKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMigucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1MaXRlEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESWQoeb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlGBogASgLMjEucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VMaXRlElQKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkTWVzc2FnZUICKAESXwogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAngBEhYKDnJlcGVhdGVkX2ludDMyGB8gAygFEhYKDnJlcGVhdGVkX2ludDY0GCAgAygDEhcKD3JlcGVhdGVkX3VpbnQzMhghIAMoDRIXCg9yZXBlYXRlZF91aW50NjQYIiADKAQSFwoPcmVwZWF0ZWRfc2ludDMyGCMgAygREhcKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoEhIYChByZXBlYXRlZF9maXhlZDMyGCUgAygHEhgKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAYSGQoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA8SGQoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBASFgoOcmVwZWF0ZWRfZmxvYXQYKSADKAISFwoPcmVwZWF0ZWRfZG91YmxlGCogAygBEhUKDXJlcGVhdGVkX2Jvb2wYKyADKAgSFwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJEhYKDnJlcGVhdGVkX2J5dGVzGC0gAygMEkgKDXJlcGVhdGVkZ3JvdXAYLiADKAoyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLlJlcGVhdGVkR3JvdXASUgoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2USRwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiUucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VMaXRlEkwKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VMaXRlEkwKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZS5OZXN0ZWRFbnVtEkEKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIiLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtTGl0ZRJGChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIoLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtTGl0ZRIhChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCEhkKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBElQKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkTWVzc2FnZUICKAESGQoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDISGgoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NBIbCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3EhsKD2RlZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwEhsKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZRIdCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGQSUAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkRW51bToDQkFSElIKFGRlZmF1bHRfZm9yZWlnbl9lbnVtGFIgASgOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlOhBGT1JFSUdOX0xJVEVfQkFSElYKE2RlZmF1bHRfaW1wb3J0X2VudW0YUyABKA4yKC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bUxpdGU6D0lNUE9SVF9MSVRFX0JBUhIlChRkZWZhdWx0X3N0cmluZ19waWVjZRhUIAEoCToDYWJjQgIIAhIdCgxkZWZhdWx0X2NvcmQYVSABKAk6AzEyM0ICCAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASUQoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAEloKGW9uZW9mX2xhenlfbmVzdGVkX21lc3NhZ2UYcyABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAigBSAASUwoVb25lb2ZfbmVzdGVkX21lc3NhZ2UyGHUgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZS5OZXN0ZWRNZXNzYWdlMkgAEh4KFmRlY2VwdGl2ZWx5X25hbWVkX2xpc3QYdCABKAUaNwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBRIKCgJjYxgCIAEoAxIOCgJkZBgDIAMoBUICEAEaHAoOTmVzdGVkTWVzc2FnZTISCgoCZGQYASABKAUaGgoNT3B0aW9uYWxHcm91cBIJCgFhGBEgASgFGhoKDVJlcGVhdGVkR3JvdXASCQoBYRgvIAEoBSInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQg0KC29uZW9mX2ZpZWxkIh8KEkZvcmVpZ25NZXNzYWdlTGl0ZRIJCgFjGAEgASgFIrIDChNUZXN0UGFja2VkVHlwZXNMaXRlEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI7CgtwYWNrZWRfZW51bRhnIAMoDjIiLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtTGl0ZUICEAEiIQoVVGVzdEFsbEV4dGVuc2lvbnNMaXRlKggIARCAgICAAiIpChxPcHRpb25hbEdyb3VwX2V4dGVuc2lvbl9saXRlEgkKAWEYESABKAUiKQocUmVwZWF0ZWRHcm91cF9leHRlbnNpb25fbGl0ZRIJCgFhGC8gASgFIiQKGFRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZSoICAEQgICAgAIibwoXVGVzdE5lc3RlZEV4dGVuc2lvbkxpdGUyVAoQbmVzdGVkX2V4dGVuc2lvbhIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRi5YCABKAVSD25lc3RlZEV4dGVuc2lvbiK2AQoSVGVzdERlcHJlY2F0ZWRMaXRlEhwKEGRlcHJlY2F0ZWRfZmllbGQYASABKAVCAhgBEh0KEWRlcHJlY2F0ZWRfZmllbGQyGAIgAigFQgIYARIdChFkZXByZWNhdGVkX2ZpZWxkMxgDIAEoCUICGAESRAoRZGVwcmVjYXRlZF9maWVsZDQYBCABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RGVwcmVjYXRlZExpdGVCAhgBIuUKChRUZXN0UGFyc2luZ01lcmdlTGl0ZRI/ChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlEj8KEm9wdGlvbmFsX2FsbF90eXBlcxgCIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUSPwoScmVwZWF0ZWRfYWxsX3R5cGVzGAMgAygLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZRJMCg1vcHRpb25hbGdyb3VwGAogASgKMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZUxpdGUuT3B0aW9uYWxHcm91cBJMCg1yZXBlYXRlZGdyb3VwGBQgAygKMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZUxpdGUuUmVwZWF0ZWRHcm91cBrOBAoXUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3ISMwoGZmllbGQxGAEgAygLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZRIzCgZmaWVsZDIYAiADKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlEjMKBmZpZWxkMxgDIAMoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUSVgoGZ3JvdXAxGAogAygKMkYucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZUxpdGUuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxElYKBmdyb3VwMhgUIAMoCjJGLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2VMaXRlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMhIyCgRleHQxGOgHIAMoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUSMgoEZXh0MhjpByADKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlGj0KBkdyb3VwMRIzCgZmaWVsZDEYCyABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlGj0KBkdyb3VwMhIzCgZmaWVsZDEYFSABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlGlYKDU9wdGlvbmFsR3JvdXASRQoYb3B0aW9uYWxfZ3JvdXBfYWxsX3R5cGVzGAsgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZRpWCg1SZXBlYXRlZEdyb3VwEkUKGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUqCQjoBxCAgICAAjJwCgxvcHRpb25hbF9leHQSJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlTGl0ZRjoByABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlUgtvcHRpb25hbEV4dDJwCgxyZXBlYXRlZF9leHQSJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlTGl0ZRjpByADKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlUgtyZXBlYXRlZEV4dCJaChZUZXN0TWVyZ2VFeGNlcHRpb25MaXRlEkAKDmFsbF9leHRlbnNpb25zGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlIhYKFFRlc3RFbXB0eU1lc3NhZ2VMaXRlIi4KIlRlc3RFbXB0eU1lc3NhZ2VXaXRoRXh0ZW5zaW9uc0xpdGUqCAgBEICAgIACIl8KDVYxTWVzc2FnZUxpdGUSEQoJaW50X2ZpZWxkGAEgAigFEjsKCmVudW1fZmllbGQYAiABKA4yHS5wcm90b2J1Zl91bml0dGVzdC5WMUVudW1MaXRlOghWMV9GSVJTVCJfCg1WMk1lc3NhZ2VMaXRlEhEKCWludF9maWVsZBgBIAIoBRI7CgplbnVtX2ZpZWxkGAIgASgOMh0ucHJvdG9idWZfdW5pdHRlc3QuVjJFbnVtTGl0ZToIVjJfRklSU1QilQYKGFRlc3RIdWdlRmllbGROdW1iZXJzTGl0ZRIaCg5vcHRpb25hbF9pbnQzMhjw+P//ASABKAUSFAoIZml4ZWRfMzIY8fj//wEgASgFEh4KDnJlcGVhdGVkX2ludDMyGPL4//8BIAMoBUICEAASHAoMcGFja2VkX2ludDMyGPP4//8BIAMoBUICEAESPQoNb3B0aW9uYWxfZW51bRj0+P//ASABKA4yIi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUxpdGUSGwoPb3B0aW9uYWxfc3RyaW5nGPX4//8BIAEoCRIaCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAwSQwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZUxpdGUSVAoNb3B0aW9uYWxncm91cBj4+P//ASABKAoyOS5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVyc0xpdGUuT3B0aW9uYWxHcm91cBJfChFzdHJpbmdfc3RyaW5nX21hcBj6+P//ASADKAsyQC5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVyc0xpdGUuU3RyaW5nU3RyaW5nTWFwRW50cnkSGgoMb25lb2ZfdWludDMyGPv4//8BIAEoDUgAEkcKFG9uZW9mX3Rlc3RfYWxsX3R5cGVzGPz4//8BIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGVIABIaCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSAASGQoLb25lb2ZfYnl0ZXMY/vj//wEgASgMSAAaJAoNT3B0aW9uYWxHcm91cBITCgdncm91cF9hGPn4//8BIAEoBRo2ChRTdHJpbmdTdHJpbmdNYXBFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQipQMKFFRlc3RPbmVvZlBhcnNpbmdMaXRlEhUKC29uZW9mX2ludDMyGAEgASgFSAASPwoQb25lb2Zfc3VibWVzc2FnZRgCIAEoCzIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGVIABIWCgxvbmVvZl9zdHJpbmcYAyABKAlIABIkCgtvbmVvZl9ieXRlcxgEIAEoDDoNZGVmYXVsdCBieXRlc0gAEi0KEW9uZW9mX3N0cmluZ19jb3JkGAUgASgJOgxkZWZhdWx0IENvcmRCAggBSAASHgoQb25lb2ZfYnl0ZXNfY29yZBgGIAEoDEICCAFIABInChlvbmVvZl9zdHJpbmdfc3RyaW5nX3BpZWNlGAcgASgJQgIIAkgAEjsKGG9uZW9mX2J5dGVzX3N0cmluZ19waWVjZRgIIAEoDDoTZGVmYXVsdCBTdHJpbmdQaWVjZUICCAJIABIzCgpvbmVvZl9lbnVtGAkgASgOMh0ucHJvdG9idWZfdW5pdHRlc3QuVjJFbnVtTGl0ZUgAQg0KC29uZW9mX2ZpZWxkIiIKElRlc3RNZXNzYWdlU2V0TGl0ZSoICGQQ/////wc6AggBIioKC1BhY2tlZEludDMyEhsKDnJlcGVhdGVkX2ludDMyGIAQIAMoBUICEAEiKQoOTm9uUGFja2VkSW50MzISFwoOcmVwZWF0ZWRfaW50MzIYgBAgAygFIi4KDVBhY2tlZEZpeGVkMzISHQoQcmVwZWF0ZWRfZml4ZWQzMhiAECADKAdCAhABIi0KEE5vblBhY2tlZEZpeGVkMzISGQoQcmVwZWF0ZWRfZml4ZWQzMhiAECADKAciWgoHRHVwRW51bSJPChhUZXN0RW51bVdpdGhEdXBWYWx1ZUxpdGUSCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASJZChBSZWN1cnNpdmVNZXNzYWdlEjQKB3JlY3Vyc2UYASABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5SZWN1cnNpdmVNZXNzYWdlEg8KB3BheWxvYWQYAiABKAwqUwoPRm9yZWlnbkVudW1MaXRlEhQKEEZPUkVJR05fTElURV9GT08QBBIUChBGT1JFSUdOX0xJVEVfQkFaEAYSFAoQRk9SRUlHTl9MSVRFX0JBUhAFKhoKClYxRW51bUxpdGUSDAoIVjFfRklSU1QQASopCgpWMkVudW1MaXRlEgwKCFYyX0ZJUlNUEAESDQoJVjJfU0VDT05EEAI6awodb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYASABKAVSGm9wdGlvbmFsSW50MzJFeHRlbnNpb25MaXRlOmsKHW9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAIgASgDUhpvcHRpb25hbEludDY0RXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYAyABKA1SG29wdGlvbmFsVWludDMyRXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYBCABKARSG29wdGlvbmFsVWludDY0RXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYBSABKBFSG29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYBiABKBJSG29wdGlvbmFsU2ludDY0RXh0ZW5zaW9uTGl0ZTpvCh9vcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAcgASgHUhxvcHRpb25hbEZpeGVkMzJFeHRlbnNpb25MaXRlOm8KH29wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYCCABKAZSHG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbkxpdGU6cQogb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYCSABKA9SHW9wdGlvbmFsU2ZpeGVkMzJFeHRlbnNpb25MaXRlOnEKIG9wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAogASgQUh1vcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uTGl0ZTprCh1vcHRpb25hbF9mbG9hdF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgLIAEoAlIab3B0aW9uYWxGbG9hdEV4dGVuc2lvbkxpdGU6bQoeb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGAwgASgBUhtvcHRpb25hbERvdWJsZUV4dGVuc2lvbkxpdGU6aQocb3B0aW9uYWxfYm9vbF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgNIAEoCFIZb3B0aW9uYWxCb29sRXh0ZW5zaW9uTGl0ZTptCh5vcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYDiABKAlSG29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uTGl0ZTprCh1vcHRpb25hbF9ieXRlc19leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgPIAEoDFIab3B0aW9uYWxCeXRlc0V4dGVuc2lvbkxpdGU6mwEKHG9wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYECABKAoyLy5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25hbEdyb3VwX2V4dGVuc2lvbl9saXRlUhpvcHRpb25hbGdyb3VwRXh0ZW5zaW9uTGl0ZTqvAQomb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYEiABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VSIm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbkxpdGU6pQEKJ29wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgTIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlTGl0ZVIjb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbkxpdGU6qQEKJm9wdGlvbmFsX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBQgASgLMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VMaXRlUiJvcHRpb25hbEltcG9ydE1lc3NhZ2VFeHRlbnNpb25MaXRlOqYBCiNvcHRpb25hbF9uZXN0ZWRfZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgVIAEoDjIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkRW51bVIfb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uTGl0ZTqcAQokb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBYgASgOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlUiBvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uTGl0ZTqgAQojb3B0aW9uYWxfaW1wb3J0X2VudW1fZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYFyABKA4yKC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bUxpdGVSH29wdGlvbmFsSW1wb3J0RW51bUV4dGVuc2lvbkxpdGU6fAokb3B0aW9uYWxfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBggASgJQgIIAlIgb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbkxpdGU6aQocb3B0aW9uYWxfY29yZF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgZIAEoCVIZb3B0aW9uYWxDb3JkRXh0ZW5zaW9uTGl0ZTq8AQotb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGBogASgLMjEucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VMaXRlUihvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2VFeHRlbnNpb25MaXRlOq8BCiRvcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYGyABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAigBUiBvcHRpb25hbExhenlNZXNzYWdlRXh0ZW5zaW9uTGl0ZTrEAQovb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYHCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VCAngBUipvcHRpb25hbFVudmVyaWZpZWRMYXp5TWVzc2FnZUV4dGVuc2lvbkxpdGU6awodcmVwZWF0ZWRfaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYHyADKAVSGnJlcGVhdGVkSW50MzJFeHRlbnNpb25MaXRlOmsKHXJlcGVhdGVkX2ludDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCAgAygDUhpyZXBlYXRlZEludDY0RXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYISADKA1SG3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF91aW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYIiADKARSG3JlcGVhdGVkVWludDY0RXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF9zaW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYIyADKBFSG3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF9zaW50NjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYJCADKBJSG3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uTGl0ZTpvCh9yZXBlYXRlZF9maXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCUgAygHUhxyZXBlYXRlZEZpeGVkMzJFeHRlbnNpb25MaXRlOm8KH3JlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYJiADKAZSHHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbkxpdGU6cQogcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYJyADKA9SHXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb25MaXRlOnEKIHJlcGVhdGVkX3NmaXhlZDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCggAygQUh1yZXBlYXRlZFNmaXhlZDY0RXh0ZW5zaW9uTGl0ZTprCh1yZXBlYXRlZF9mbG9hdF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgpIAMoAlIacmVwZWF0ZWRGbG9hdEV4dGVuc2lvbkxpdGU6bQoecmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGCogAygBUhtyZXBlYXRlZERvdWJsZUV4dGVuc2lvbkxpdGU6aQoccmVwZWF0ZWRfYm9vbF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgrIAMoCFIZcmVwZWF0ZWRCb29sRXh0ZW5zaW9uTGl0ZTptCh5yZXBlYXRlZF9zdHJpbmdfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYLCADKAlSG3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uTGl0ZTprCh1yZXBlYXRlZF9ieXRlc19leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgtIAMoDFIacmVwZWF0ZWRCeXRlc0V4dGVuc2lvbkxpdGU6mwEKHHJlcGVhdGVkZ3JvdXBfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYLiADKAoyLy5wcm90b2J1Zl91bml0dGVzdC5SZXBlYXRlZEdyb3VwX2V4dGVuc2lvbl9saXRlUhpyZXBlYXRlZGdyb3VwRXh0ZW5zaW9uTGl0ZTqvAQomcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYMCADKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VSInJlcGVhdGVkTmVzdGVkTWVzc2FnZUV4dGVuc2lvbkxpdGU6pQEKJ3JlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgxIAMoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlTGl0ZVIjcmVwZWF0ZWRGb3JlaWduTWVzc2FnZUV4dGVuc2lvbkxpdGU6qQEKJnJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDIgAygLMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VMaXRlUiJyZXBlYXRlZEltcG9ydE1lc3NhZ2VFeHRlbnNpb25MaXRlOqYBCiNyZXBlYXRlZF9uZXN0ZWRfZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRgzIAMoDjIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0xpdGUuTmVzdGVkRW51bVIfcmVwZWF0ZWROZXN0ZWRFbnVtRXh0ZW5zaW9uTGl0ZTqcAQokcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDQgAygOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlUiByZXBlYXRlZEZvcmVpZ25FbnVtRXh0ZW5zaW9uTGl0ZTqgAQojcmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYNSADKA4yKC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bUxpdGVSH3JlcGVhdGVkSW1wb3J0RW51bUV4dGVuc2lvbkxpdGU6fAokcmVwZWF0ZWRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDYgAygJQgIIAlIgcmVwZWF0ZWRTdHJpbmdQaWVjZUV4dGVuc2lvbkxpdGU6aQoccmVwZWF0ZWRfY29yZF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRg3IAMoCVIZcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uTGl0ZTqvAQokcmVwZWF0ZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGDkgAygLMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZS5OZXN0ZWRNZXNzYWdlQgIoAVIgcmVwZWF0ZWRMYXp5TWVzc2FnZUV4dGVuc2lvbkxpdGU6bQocZGVmYXVsdF9pbnQzMl9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRg9IAEoBToCNDFSGWRlZmF1bHRJbnQzMkV4dGVuc2lvbkxpdGU6bQocZGVmYXVsdF9pbnQ2NF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRg+IAEoAzoCNDJSGWRlZmF1bHRJbnQ2NEV4dGVuc2lvbkxpdGU6bwodZGVmYXVsdF91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYPyABKA06AjQzUhpkZWZhdWx0VWludDMyRXh0ZW5zaW9uTGl0ZTpvCh1kZWZhdWx0X3VpbnQ2NF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhAIAEoBDoCNDRSGmRlZmF1bHRVaW50NjRFeHRlbnNpb25MaXRlOnAKHWRlZmF1bHRfc2ludDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEEgASgROgMtNDVSGmRlZmF1bHRTaW50MzJFeHRlbnNpb25MaXRlOm8KHWRlZmF1bHRfc2ludDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEIgASgSOgI0NlIaZGVmYXVsdFNpbnQ2NEV4dGVuc2lvbkxpdGU6cQoeZGVmYXVsdF9maXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEMgASgHOgI0N1IbZGVmYXVsdEZpeGVkMzJFeHRlbnNpb25MaXRlOnEKHmRlZmF1bHRfZml4ZWQ2NF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhEIAEoBjoCNDhSG2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uTGl0ZTpzCh9kZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEUgASgPOgI0OVIcZGVmYXVsdFNmaXhlZDMyRXh0ZW5zaW9uTGl0ZTp0Ch9kZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEYgASgQOgMtNTBSHGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbkxpdGU6bwocZGVmYXVsdF9mbG9hdF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhHIAEoAjoENTEuNVIZZGVmYXVsdEZsb2F0RXh0ZW5zaW9uTGl0ZTpyCh1kZWZhdWx0X2RvdWJsZV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhIIAEoAToFNTIwMDBSGmRlZmF1bHREb3VibGVFeHRlbnNpb25MaXRlOm0KG2RlZmF1bHRfYm9vbF9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhJIAEoCDoEdHJ1ZVIYZGVmYXVsdEJvb2xFeHRlbnNpb25MaXRlOnIKHWRlZmF1bHRfc3RyaW5nX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGEogASgJOgVoZWxsb1IaZGVmYXVsdFN0cmluZ0V4dGVuc2lvbkxpdGU6cAocZGVmYXVsdF9ieXRlc19leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhLIAEoDDoFd29ybGRSGWRlZmF1bHRCeXRlc0V4dGVuc2lvbkxpdGU6qQEKImRlZmF1bHRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYUSABKA4yLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZEVudW06A0JBUlIeZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb25MaXRlOqwBCiNkZWZhdWx0X2ZvcmVpZ25fZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhSIAEoDjIiLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtTGl0ZToQRk9SRUlHTl9MSVRFX0JBUlIfZGVmYXVsdEZvcmVpZ25FbnVtRXh0ZW5zaW9uTGl0ZTqvAQoiZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb25fbGl0ZRIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zTGl0ZRhTIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtTGl0ZToPSU1QT1JUX0xJVEVfQkFSUh5kZWZhdWx0SW1wb3J0RW51bUV4dGVuc2lvbkxpdGU6fwojZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYVCABKAk6A2FiY0ICCAJSH2RlZmF1bHRTdHJpbmdQaWVjZUV4dGVuc2lvbkxpdGU6bAobZGVmYXVsdF9jb3JkX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGFUgASgJOgMxMjNSGGRlZmF1bHRDb3JkRXh0ZW5zaW9uTGl0ZTpnChtvbmVvZl91aW50MzJfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYbyABKA1SGG9uZW9mVWludDMyRXh0ZW5zaW9uTGl0ZTqpAQojb25lb2ZfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYcCABKAsyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNMaXRlLk5lc3RlZE1lc3NhZ2VSH29uZW9mTmVzdGVkTWVzc2FnZUV4dGVuc2lvbkxpdGU6Zwobb25lb2Zfc3RyaW5nX2V4dGVuc2lvbl9saXRlEigucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnNMaXRlGHEgASgJUhhvbmVvZlN0cmluZ0V4dGVuc2lvbkxpdGU6ZQoab25lb2ZfYnl0ZXNfZXh0ZW5zaW9uX2xpdGUSKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9uc0xpdGUYciABKAxSF29uZW9mQnl0ZXNFeHRlbnNpb25MaXRlOm4KG3BhY2tlZF9pbnQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhaIAMoBUICEAFSGHBhY2tlZEludDMyRXh0ZW5zaW9uTGl0ZTpuChtwYWNrZWRfaW50NjRfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYWyADKANCAhABUhhwYWNrZWRJbnQ2NEV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3VpbnQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhcIAMoDUICEAFSGXBhY2tlZFVpbnQzMkV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3VpbnQ2NF9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhdIAMoBEICEAFSGXBhY2tlZFVpbnQ2NEV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3NpbnQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRheIAMoEUICEAFSGXBhY2tlZFNpbnQzMkV4dGVuc2lvbkxpdGU6cAoccGFja2VkX3NpbnQ2NF9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhfIAMoEkICEAFSGXBhY2tlZFNpbnQ2NEV4dGVuc2lvbkxpdGU6cgodcGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYYCADKAdCAhABUhpwYWNrZWRGaXhlZDMyRXh0ZW5zaW9uTGl0ZTpyCh1wYWNrZWRfZml4ZWQ2NF9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhhIAMoBkICEAFSGnBhY2tlZEZpeGVkNjRFeHRlbnNpb25MaXRlOnQKHnBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb25fbGl0ZRIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zTGl0ZRhiIAMoD0ICEAFSG3BhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uTGl0ZTp0Ch5wYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYYyADKBBCAhABUhtwYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbkxpdGU6bgobcGFja2VkX2Zsb2F0X2V4dGVuc2lvbl9saXRlEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnNMaXRlGGQgAygCQgIQAVIYcGFja2VkRmxvYXRFeHRlbnNpb25MaXRlOnAKHHBhY2tlZF9kb3VibGVfZXh0ZW5zaW9uX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9uc0xpdGUYZSADKAFCAhABUhlwYWNrZWREb3VibGVFeHRlbnNpb25MaXRlOmwKGnBhY2tlZF9ib29sX2V4dGVuc2lvbl9saXRlEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnNMaXRlGGYgAygIQgIQAVIXcGFja2VkQm9vbEV4dGVuc2lvbkxpdGU6kAEKGnBhY2tlZF9lbnVtX2V4dGVuc2lvbl9saXRlEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnNMaXRlGGcgAygOMiIucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1MaXRlQgIQAVIXcGFja2VkRW51bUV4dGVuc2lvbkxpdGU6gwEKE3Rlc3RfYWxsX3R5cGVzX2xpdGUSKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVyc0xpdGUY4Kr//wEgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzTGl0ZVIQdGVzdEFsbFR5cGVzTGl0ZUIaChNjb20uZ29vZ2xlLnByb3RvYnVmSAP4AQE", [fileDesc_google_protobuf_unittest_import_lite]); - -/** - * Same as TestAllTypes but with the lite runtime. - * - * @generated from message protobuf_unittest.TestAllTypesLite - */ -export type TestAllTypesLite = Message<"protobuf_unittest.TestAllTypesLite"> & { - /** - * Singular - * - * @generated from field: optional int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: optional int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: optional uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: optional uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: optional sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: optional sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: optional fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: optional fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: optional sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: optional sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: optional float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: optional double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: optional bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: optional string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: optional bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.OptionalGroup optionalgroup = 16; - */ - optionalgroup?: TestAllTypesLite_OptionalGroup; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypesLite_NestedMessage; - - /** - * @generated from field: optional protobuf_unittest.ForeignMessageLite optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessageLite; - - /** - * @generated from field: optional protobuf_unittest_import.ImportMessageLite optional_import_message = 20; - */ - optionalImportMessage?: ImportMessageLite; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypesLite_NestedEnum; - - /** - * @generated from field: optional protobuf_unittest.ForeignEnumLite optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnumLite; - - /** - * @generated from field: optional protobuf_unittest_import.ImportEnumLite optional_import_enum = 23; - */ - optionalImportEnum: ImportEnumLite; - - /** - * @generated from field: optional string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: optional string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: optional protobuf_unittest_import.PublicImportMessageLite optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessageLite; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypesLite_NestedMessage; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_unverified_lazy_message = 28; - */ - optionalUnverifiedLazyMessage?: TestAllTypesLite_NestedMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.RepeatedGroup repeatedgroup = 46; - */ - repeatedgroup: TestAllTypesLite_RepeatedGroup[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypesLite_NestedMessage[]; - - /** - * @generated from field: repeated protobuf_unittest.ForeignMessageLite repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessageLite[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessageLite repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessageLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypesLite_NestedEnum[]; - - /** - * @generated from field: repeated protobuf_unittest.ForeignEnumLite repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnumLite[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportEnumLite repeated_import_enum = 53; - */ - repeatedImportEnum: ImportEnumLite[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypesLite_NestedMessage[]; - - /** - * Singular with defaults - * - * @generated from field: optional int32 default_int32 = 61 [default = 41]; - */ - defaultInt32: number; - - /** - * @generated from field: optional int64 default_int64 = 62 [default = 42]; - */ - defaultInt64: bigint; - - /** - * @generated from field: optional uint32 default_uint32 = 63 [default = 43]; - */ - defaultUint32: number; - - /** - * @generated from field: optional uint64 default_uint64 = 64 [default = 44]; - */ - defaultUint64: bigint; - - /** - * @generated from field: optional sint32 default_sint32 = 65 [default = -45]; - */ - defaultSint32: number; - - /** - * @generated from field: optional sint64 default_sint64 = 66 [default = 46]; - */ - defaultSint64: bigint; - - /** - * @generated from field: optional fixed32 default_fixed32 = 67 [default = 47]; - */ - defaultFixed32: number; - - /** - * @generated from field: optional fixed64 default_fixed64 = 68 [default = 48]; - */ - defaultFixed64: bigint; - - /** - * @generated from field: optional sfixed32 default_sfixed32 = 69 [default = 49]; - */ - defaultSfixed32: number; - - /** - * @generated from field: optional sfixed64 default_sfixed64 = 70 [default = -50]; - */ - defaultSfixed64: bigint; - - /** - * @generated from field: optional float default_float = 71 [default = 51.5]; - */ - defaultFloat: number; - - /** - * @generated from field: optional double default_double = 72 [default = 52000]; - */ - defaultDouble: number; - - /** - * @generated from field: optional bool default_bool = 73 [default = true]; - */ - defaultBool: boolean; - - /** - * @generated from field: optional string default_string = 74 [default = "hello"]; - */ - defaultString: string; - - /** - * @generated from field: optional bytes default_bytes = 75 [default = "world"]; - */ - defaultBytes: Uint8Array; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite.NestedEnum default_nested_enum = 81 [default = BAR]; - */ - defaultNestedEnum: TestAllTypesLite_NestedEnum; - - /** - * @generated from field: optional protobuf_unittest.ForeignEnumLite default_foreign_enum = 82 [default = FOREIGN_LITE_BAR]; - */ - defaultForeignEnum: ForeignEnumLite; - - /** - * @generated from field: optional protobuf_unittest_import.ImportEnumLite default_import_enum = 83 [default = IMPORT_LITE_BAR]; - */ - defaultImportEnum: ImportEnumLite; - - /** - * @generated from field: optional string default_string_piece = 84 [default = "abc"]; - */ - defaultStringPiece: string; - - /** - * @generated from field: optional string default_cord = 85 [default = "123"]; - */ - defaultCord: string; - - /** - * For oneof test - * - * @generated from oneof protobuf_unittest.TestAllTypesLite.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypesLite_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite.NestedMessage oneof_lazy_nested_message = 115; - */ - value: TestAllTypesLite_NestedMessage; - case: "oneofLazyNestedMessage"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite.NestedMessage2 oneof_nested_message2 = 117; - */ - value: TestAllTypesLite_NestedMessage2; - case: "oneofNestedMessage2"; - } | { case: undefined; value?: undefined }; - - /** - * Tests toString for non-repeated fields with a list suffix - * - * @generated from field: optional int32 deceptively_named_list = 116; - */ - deceptivelyNamedList: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite. -// Use `create(TestAllTypesLiteDesc)` to create a new TestAllTypesLite. -export const TestAllTypesLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0); - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.NestedMessage - */ -export type TestAllTypesLite_NestedMessage = Message<"protobuf_unittest.TestAllTypesLite.NestedMessage"> & { - /** - * @generated from field: optional int32 bb = 1; - */ - bb: number; - - /** - * @generated from field: optional int64 cc = 2; - */ - cc: bigint; - - /** - * @generated from field: repeated int32 dd = 3 [packed = true]; - */ - dd: number[]; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.NestedMessage. -// Use `create(TestAllTypesLite_NestedMessageDesc)` to create a new TestAllTypesLite_NestedMessage. -export const TestAllTypesLite_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 0); - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.NestedMessage2 - */ -export type TestAllTypesLite_NestedMessage2 = Message<"protobuf_unittest.TestAllTypesLite.NestedMessage2"> & { - /** - * @generated from field: optional int32 dd = 1; - */ - dd: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.NestedMessage2. -// Use `create(TestAllTypesLite_NestedMessage2Desc)` to create a new TestAllTypesLite_NestedMessage2. -export const TestAllTypesLite_NestedMessage2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 1); - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.OptionalGroup - */ -export type TestAllTypesLite_OptionalGroup = Message<"protobuf_unittest.TestAllTypesLite.OptionalGroup"> & { - /** - * @generated from field: optional int32 a = 17; - */ - a: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.OptionalGroup. -// Use `create(TestAllTypesLite_OptionalGroupDesc)` to create a new TestAllTypesLite_OptionalGroup. -export const TestAllTypesLite_OptionalGroupDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 2); - -/** - * @generated from message protobuf_unittest.TestAllTypesLite.RepeatedGroup - */ -export type TestAllTypesLite_RepeatedGroup = Message<"protobuf_unittest.TestAllTypesLite.RepeatedGroup"> & { - /** - * @generated from field: optional int32 a = 47; - */ - a: number; -}; - -// Describes the message protobuf_unittest.TestAllTypesLite.RepeatedGroup. -// Use `create(TestAllTypesLite_RepeatedGroupDesc)` to create a new TestAllTypesLite_RepeatedGroup. -export const TestAllTypesLite_RepeatedGroupDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 0, 3); - -/** - * @generated from enum protobuf_unittest.TestAllTypesLite.NestedEnum - */ -export enum TestAllTypesLite_NestedEnum { - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, -} - -// Describes the enum protobuf_unittest.TestAllTypesLite.NestedEnum. -export const TestAllTypesLite_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 0, 0); - -/** - * @generated from message protobuf_unittest.ForeignMessageLite - */ -export type ForeignMessageLite = Message<"protobuf_unittest.ForeignMessageLite"> & { - /** - * @generated from field: optional int32 c = 1; - */ - c: number; -}; - -// Describes the message protobuf_unittest.ForeignMessageLite. -// Use `create(ForeignMessageLiteDesc)` to create a new ForeignMessageLite. -export const ForeignMessageLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 1); - -/** - * @generated from message protobuf_unittest.TestPackedTypesLite - */ -export type TestPackedTypesLite = Message<"protobuf_unittest.TestPackedTypesLite"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated protobuf_unittest.ForeignEnumLite packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnumLite[]; -}; - -// Describes the message protobuf_unittest.TestPackedTypesLite. -// Use `create(TestPackedTypesLiteDesc)` to create a new TestPackedTypesLite. -export const TestPackedTypesLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 2); - -/** - * @generated from message protobuf_unittest.TestAllExtensionsLite - */ -export type TestAllExtensionsLite = Message<"protobuf_unittest.TestAllExtensionsLite"> & { -}; - -// Describes the message protobuf_unittest.TestAllExtensionsLite. -// Use `create(TestAllExtensionsLiteDesc)` to create a new TestAllExtensionsLite. -export const TestAllExtensionsLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 3); - -/** - * @generated from message protobuf_unittest.OptionalGroup_extension_lite - */ -export type OptionalGroup_extension_lite = Message<"protobuf_unittest.OptionalGroup_extension_lite"> & { - /** - * @generated from field: optional int32 a = 17; - */ - a: number; -}; - -// Describes the message protobuf_unittest.OptionalGroup_extension_lite. -// Use `create(OptionalGroup_extension_liteDesc)` to create a new OptionalGroup_extension_lite. -export const OptionalGroup_extension_liteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 4); - -/** - * @generated from message protobuf_unittest.RepeatedGroup_extension_lite - */ -export type RepeatedGroup_extension_lite = Message<"protobuf_unittest.RepeatedGroup_extension_lite"> & { - /** - * @generated from field: optional int32 a = 47; - */ - a: number; -}; - -// Describes the message protobuf_unittest.RepeatedGroup_extension_lite. -// Use `create(RepeatedGroup_extension_liteDesc)` to create a new RepeatedGroup_extension_lite. -export const RepeatedGroup_extension_liteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 5); - -/** - * @generated from message protobuf_unittest.TestPackedExtensionsLite - */ -export type TestPackedExtensionsLite = Message<"protobuf_unittest.TestPackedExtensionsLite"> & { -}; - -// Describes the message protobuf_unittest.TestPackedExtensionsLite. -// Use `create(TestPackedExtensionsLiteDesc)` to create a new TestPackedExtensionsLite. -export const TestPackedExtensionsLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 6); - -/** - * @generated from message protobuf_unittest.TestNestedExtensionLite - */ -export type TestNestedExtensionLite = Message<"protobuf_unittest.TestNestedExtensionLite"> & { -}; - -// Describes the message protobuf_unittest.TestNestedExtensionLite. -// Use `create(TestNestedExtensionLiteDesc)` to create a new TestNestedExtensionLite. -export const TestNestedExtensionLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 7); - -/** - * @generated from extension: optional int32 nested_extension = 12345; - */ -export const TestNestedExtensionLite_nested_extension: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 7, 0); - -/** - * Test that deprecated fields work. We only verify that they compile (at one - * point this failed). - * - * @generated from message protobuf_unittest.TestDeprecatedLite - */ -export type TestDeprecatedLite = Message<"protobuf_unittest.TestDeprecatedLite"> & { - /** - * @generated from field: optional int32 deprecated_field = 1 [deprecated = true]; - * @deprecated - */ - deprecatedField: number; - - /** - * @generated from field: required int32 deprecated_field2 = 2 [deprecated = true]; - * @deprecated - */ - deprecatedField2: number; - - /** - * @generated from field: optional string deprecated_field3 = 3 [deprecated = true]; - * @deprecated - */ - deprecatedField3: string; - - /** - * @generated from field: optional protobuf_unittest.TestDeprecatedLite deprecated_field4 = 4 [deprecated = true]; - * @deprecated - */ - deprecatedField4?: TestDeprecatedLite; -}; - -// Describes the message protobuf_unittest.TestDeprecatedLite. -// Use `create(TestDeprecatedLiteDesc)` to create a new TestDeprecatedLite. -export const TestDeprecatedLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 8); - -/** - * See the comments of the same type in unittest.proto. - * - * @generated from message protobuf_unittest.TestParsingMergeLite - */ -export type TestParsingMergeLite = Message<"protobuf_unittest.TestParsingMergeLite"> & { - /** - * @generated from field: required protobuf_unittest.TestAllTypesLite required_all_types = 1; - */ - requiredAllTypes?: TestAllTypesLite; - - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite optional_all_types = 2; - */ - optionalAllTypes?: TestAllTypesLite; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite repeated_all_types = 3; - */ - repeatedAllTypes: TestAllTypesLite[]; - - /** - * @generated from field: optional protobuf_unittest.TestParsingMergeLite.OptionalGroup optionalgroup = 10; - */ - optionalgroup?: TestParsingMergeLite_OptionalGroup; - - /** - * @generated from field: repeated protobuf_unittest.TestParsingMergeLite.RepeatedGroup repeatedgroup = 20; - */ - repeatedgroup: TestParsingMergeLite_RepeatedGroup[]; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite. -// Use `create(TestParsingMergeLiteDesc)` to create a new TestParsingMergeLite. -export const TestParsingMergeLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9); - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator - */ -export type TestParsingMergeLite_RepeatedFieldsGenerator = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator"> & { - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite field1 = 1; - */ - field1: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite field2 = 2; - */ - field2: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite field3 = 3; - */ - field3: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 group1 = 10; - */ - group1: TestParsingMergeLite_RepeatedFieldsGenerator_Group1[]; - - /** - * @generated from field: repeated protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 group2 = 20; - */ - group2: TestParsingMergeLite_RepeatedFieldsGenerator_Group2[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite ext1 = 1000; - */ - ext1: TestAllTypesLite[]; - - /** - * @generated from field: repeated protobuf_unittest.TestAllTypesLite ext2 = 1001; - */ - ext2: TestAllTypesLite[]; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator. -// Use `create(TestParsingMergeLite_RepeatedFieldsGeneratorDesc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator. -export const TestParsingMergeLite_RepeatedFieldsGeneratorDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 0); - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1 - */ -export type TestParsingMergeLite_RepeatedFieldsGenerator_Group1 = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite field1 = 11; - */ - field1?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1. -// Use `create(TestParsingMergeLite_RepeatedFieldsGenerator_Group1Desc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator_Group1. -export const TestParsingMergeLite_RepeatedFieldsGenerator_Group1Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 0, 0); - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2 - */ -export type TestParsingMergeLite_RepeatedFieldsGenerator_Group2 = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite field1 = 21; - */ - field1?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2. -// Use `create(TestParsingMergeLite_RepeatedFieldsGenerator_Group2Desc)` to create a new TestParsingMergeLite_RepeatedFieldsGenerator_Group2. -export const TestParsingMergeLite_RepeatedFieldsGenerator_Group2Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 0, 1); - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.OptionalGroup - */ -export type TestParsingMergeLite_OptionalGroup = Message<"protobuf_unittest.TestParsingMergeLite.OptionalGroup"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite optional_group_all_types = 11; - */ - optionalGroupAllTypes?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.OptionalGroup. -// Use `create(TestParsingMergeLite_OptionalGroupDesc)` to create a new TestParsingMergeLite_OptionalGroup. -export const TestParsingMergeLite_OptionalGroupDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 1); - -/** - * @generated from message protobuf_unittest.TestParsingMergeLite.RepeatedGroup - */ -export type TestParsingMergeLite_RepeatedGroup = Message<"protobuf_unittest.TestParsingMergeLite.RepeatedGroup"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllTypesLite repeated_group_all_types = 21; - */ - repeatedGroupAllTypes?: TestAllTypesLite; -}; - -// Describes the message protobuf_unittest.TestParsingMergeLite.RepeatedGroup. -// Use `create(TestParsingMergeLite_RepeatedGroupDesc)` to create a new TestParsingMergeLite_RepeatedGroup. -export const TestParsingMergeLite_RepeatedGroupDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 9, 2); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite optional_ext = 1000; - */ -export const TestParsingMergeLite_optional_ext: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 9, 0); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite repeated_ext = 1001; - */ -export const TestParsingMergeLite_repeated_ext: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 9, 1); - -/** - * Test that the correct exception is thrown by parseFrom in a corner case - * involving merging, extensions, and required fields. - * - * @generated from message protobuf_unittest.TestMergeExceptionLite - */ -export type TestMergeExceptionLite = Message<"protobuf_unittest.TestMergeExceptionLite"> & { - /** - * @generated from field: optional protobuf_unittest.TestAllExtensionsLite all_extensions = 1; - */ - allExtensions?: TestAllExtensionsLite; -}; - -// Describes the message protobuf_unittest.TestMergeExceptionLite. -// Use `create(TestMergeExceptionLiteDesc)` to create a new TestMergeExceptionLite. -export const TestMergeExceptionLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 10); - -/** - * TestEmptyMessageLite is used to test unknown fields support in lite mode. - * - * @generated from message protobuf_unittest.TestEmptyMessageLite - */ -export type TestEmptyMessageLite = Message<"protobuf_unittest.TestEmptyMessageLite"> & { -}; - -// Describes the message protobuf_unittest.TestEmptyMessageLite. -// Use `create(TestEmptyMessageLiteDesc)` to create a new TestEmptyMessageLite. -export const TestEmptyMessageLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 11); - -/** - * Like above, but declare all field numbers as potential extensions. No - * actual extensions should ever be defined for this type. - * - * @generated from message protobuf_unittest.TestEmptyMessageWithExtensionsLite - */ -export type TestEmptyMessageWithExtensionsLite = Message<"protobuf_unittest.TestEmptyMessageWithExtensionsLite"> & { -}; - -// Describes the message protobuf_unittest.TestEmptyMessageWithExtensionsLite. -// Use `create(TestEmptyMessageWithExtensionsLiteDesc)` to create a new TestEmptyMessageWithExtensionsLite. -export const TestEmptyMessageWithExtensionsLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 12); - -/** - * @generated from message protobuf_unittest.V1MessageLite - */ -export type V1MessageLite = Message<"protobuf_unittest.V1MessageLite"> & { - /** - * @generated from field: required int32 int_field = 1; - */ - intField: number; - - /** - * @generated from field: optional protobuf_unittest.V1EnumLite enum_field = 2 [default = V1_FIRST]; - */ - enumField: V1EnumLite; -}; - -// Describes the message protobuf_unittest.V1MessageLite. -// Use `create(V1MessageLiteDesc)` to create a new V1MessageLite. -export const V1MessageLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 13); - -/** - * @generated from message protobuf_unittest.V2MessageLite - */ -export type V2MessageLite = Message<"protobuf_unittest.V2MessageLite"> & { - /** - * @generated from field: required int32 int_field = 1; - */ - intField: number; - - /** - * @generated from field: optional protobuf_unittest.V2EnumLite enum_field = 2 [default = V2_FIRST]; - */ - enumField: V2EnumLite; -}; - -// Describes the message protobuf_unittest.V2MessageLite. -// Use `create(V2MessageLiteDesc)` to create a new V2MessageLite. -export const V2MessageLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 14); - -/** - * @generated from message protobuf_unittest.TestHugeFieldNumbersLite - */ -export type TestHugeFieldNumbersLite = Message<"protobuf_unittest.TestHugeFieldNumbersLite"> & { - /** - * @generated from field: optional int32 optional_int32 = 536870000; - */ - optionalInt32: number; - - /** - * @generated from field: optional int32 fixed_32 = 536870001; - */ - fixed32: number; - - /** - * @generated from field: repeated int32 repeated_int32 = 536870002 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int32 packed_int32 = 536870003 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: optional protobuf_unittest.ForeignEnumLite optional_enum = 536870004; - */ - optionalEnum: ForeignEnumLite; - - /** - * @generated from field: optional string optional_string = 536870005; - */ - optionalString: string; - - /** - * @generated from field: optional bytes optional_bytes = 536870006; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: optional protobuf_unittest.ForeignMessageLite optional_message = 536870007; - */ - optionalMessage?: ForeignMessageLite; - - /** - * @generated from field: optional protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup optionalgroup = 536870008; - */ - optionalgroup?: TestHugeFieldNumbersLite_OptionalGroup; - - /** - * @generated from field: map string_string_map = 536870010; - */ - stringStringMap: { [key: string]: string }; - - /** - * @generated from oneof protobuf_unittest.TestHugeFieldNumbersLite.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 536870011; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite oneof_test_all_types = 536870012; - */ - value: TestAllTypesLite; - case: "oneofTestAllTypes"; - } | { - /** - * @generated from field: string oneof_string = 536870013; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 536870014; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message protobuf_unittest.TestHugeFieldNumbersLite. -// Use `create(TestHugeFieldNumbersLiteDesc)` to create a new TestHugeFieldNumbersLite. -export const TestHugeFieldNumbersLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 15); - -/** - * @generated from message protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup - */ -export type TestHugeFieldNumbersLite_OptionalGroup = Message<"protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup"> & { - /** - * @generated from field: optional int32 group_a = 536870009; - */ - groupA: number; -}; - -// Describes the message protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup. -// Use `create(TestHugeFieldNumbersLite_OptionalGroupDesc)` to create a new TestHugeFieldNumbersLite_OptionalGroup. -export const TestHugeFieldNumbersLite_OptionalGroupDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 15, 0); - -/** - * @generated from message protobuf_unittest.TestOneofParsingLite - */ -export type TestOneofParsingLite = Message<"protobuf_unittest.TestOneofParsingLite"> & { - /** - * @generated from oneof protobuf_unittest.TestOneofParsingLite.oneof_field - */ - oneofField: { - /** - * @generated from field: int32 oneof_int32 = 1; - */ - value: number; - case: "oneofInt32"; - } | { - /** - * @generated from field: protobuf_unittest.TestAllTypesLite oneof_submessage = 2; - */ - value: TestAllTypesLite; - case: "oneofSubmessage"; - } | { - /** - * @generated from field: string oneof_string = 3; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 4 [default = "default bytes"]; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { - /** - * @generated from field: string oneof_string_cord = 5 [default = "default Cord"]; - */ - value: string; - case: "oneofStringCord"; - } | { - /** - * @generated from field: bytes oneof_bytes_cord = 6; - */ - value: Uint8Array; - case: "oneofBytesCord"; - } | { - /** - * @generated from field: string oneof_string_string_piece = 7; - */ - value: string; - case: "oneofStringStringPiece"; - } | { - /** - * @generated from field: bytes oneof_bytes_string_piece = 8 [default = "default StringPiece"]; - */ - value: Uint8Array; - case: "oneofBytesStringPiece"; - } | { - /** - * @generated from field: protobuf_unittest.V2EnumLite oneof_enum = 9; - */ - value: V2EnumLite; - case: "oneofEnum"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message protobuf_unittest.TestOneofParsingLite. -// Use `create(TestOneofParsingLiteDesc)` to create a new TestOneofParsingLite. -export const TestOneofParsingLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 16); - -/** - * @generated from message protobuf_unittest.TestMessageSetLite - */ -export type TestMessageSetLite = Message<"protobuf_unittest.TestMessageSetLite"> & { -}; - -// Describes the message protobuf_unittest.TestMessageSetLite. -// Use `create(TestMessageSetLiteDesc)` to create a new TestMessageSetLite. -export const TestMessageSetLiteDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 17); - -/** - * The following four messages are set up to test for wire compatibility between - * packed and non-packed repeated fields. We use the field number 2048, because - * that is large enough to require a 3-byte varint for the tag. - * - * @generated from message protobuf_unittest.PackedInt32 - */ -export type PackedInt32 = Message<"protobuf_unittest.PackedInt32"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 2048 [packed = true]; - */ - repeatedInt32: number[]; -}; - -// Describes the message protobuf_unittest.PackedInt32. -// Use `create(PackedInt32Desc)` to create a new PackedInt32. -export const PackedInt32Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 18); - -/** - * @generated from message protobuf_unittest.NonPackedInt32 - */ -export type NonPackedInt32 = Message<"protobuf_unittest.NonPackedInt32"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 2048; - */ - repeatedInt32: number[]; -}; - -// Describes the message protobuf_unittest.NonPackedInt32. -// Use `create(NonPackedInt32Desc)` to create a new NonPackedInt32. -export const NonPackedInt32Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 19); - -/** - * @generated from message protobuf_unittest.PackedFixed32 - */ -export type PackedFixed32 = Message<"protobuf_unittest.PackedFixed32"> & { - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 2048 [packed = true]; - */ - repeatedFixed32: number[]; -}; - -// Describes the message protobuf_unittest.PackedFixed32. -// Use `create(PackedFixed32Desc)` to create a new PackedFixed32. -export const PackedFixed32Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 20); - -/** - * @generated from message protobuf_unittest.NonPackedFixed32 - */ -export type NonPackedFixed32 = Message<"protobuf_unittest.NonPackedFixed32"> & { - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 2048; - */ - repeatedFixed32: number[]; -}; - -// Describes the message protobuf_unittest.NonPackedFixed32. -// Use `create(NonPackedFixed32Desc)` to create a new NonPackedFixed32. -export const NonPackedFixed32Desc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 21); - -/** - * Test an enum that has multiple values with the same number. - * - * @generated from message protobuf_unittest.DupEnum - */ -export type DupEnum = Message<"protobuf_unittest.DupEnum"> & { -}; - -// Describes the message protobuf_unittest.DupEnum. -// Use `create(DupEnumDesc)` to create a new DupEnum. -export const DupEnumDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 22); - -/** - * @generated from enum protobuf_unittest.DupEnum.TestEnumWithDupValueLite - */ -export enum DupEnum_TestEnumWithDupValueLite { - /** - * @generated from enum value: FOO1 = 1; - */ - FOO1 = 1, - - /** - * @generated from enum value: BAR1 = 2; - */ - BAR1 = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * @generated from enum value: FOO2 = 1; - */ - FOO2 = 1, - - /** - * @generated from enum value: BAR2 = 2; - */ - BAR2 = 2, -} - -// Describes the enum protobuf_unittest.DupEnum.TestEnumWithDupValueLite. -export const DupEnum_TestEnumWithDupValueLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 22, 0); - -/** - * @generated from message protobuf_unittest.RecursiveMessage - */ -export type RecursiveMessage = Message<"protobuf_unittest.RecursiveMessage"> & { - /** - * @generated from field: optional protobuf_unittest.RecursiveMessage recurse = 1; - */ - recurse?: RecursiveMessage; - - /** - * @generated from field: optional bytes payload = 2; - */ - payload: Uint8Array; -}; - -// Describes the message protobuf_unittest.RecursiveMessage. -// Use `create(RecursiveMessageDesc)` to create a new RecursiveMessage. -export const RecursiveMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_lite, 23); - -/** - * @generated from enum protobuf_unittest.ForeignEnumLite - */ -export enum ForeignEnumLite { - /** - * @generated from enum value: FOREIGN_LITE_FOO = 4; - */ - FOREIGN_LITE_FOO = 4, - - /** - * @generated from enum value: FOREIGN_LITE_BAZ = 6; - */ - FOREIGN_LITE_BAZ = 6, - - /** - * @generated from enum value: FOREIGN_LITE_BAR = 5; - */ - FOREIGN_LITE_BAR = 5, -} - -// Describes the enum protobuf_unittest.ForeignEnumLite. -export const ForeignEnumLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 0); - -/** - * @generated from enum protobuf_unittest.V1EnumLite - */ -export enum V1EnumLite { - /** - * @generated from enum value: V1_FIRST = 1; - */ - V1_FIRST = 1, -} - -// Describes the enum protobuf_unittest.V1EnumLite. -export const V1EnumLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 1); - -/** - * @generated from enum protobuf_unittest.V2EnumLite - */ -export enum V2EnumLite { - /** - * @generated from enum value: V2_FIRST = 1; - */ - V2_FIRST = 1, - - /** - * @generated from enum value: V2_SECOND = 2; - */ - V2_SECOND = 2, -} - -// Describes the enum protobuf_unittest.V2EnumLite. -export const V2EnumLiteDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_lite, 2); - -/** - * Singular - * - * @generated from extension: optional int32 optional_int32_extension_lite = 1; - */ -export const optional_int32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 0); - -/** - * @generated from extension: optional int64 optional_int64_extension_lite = 2; - */ -export const optional_int64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 1); - -/** - * @generated from extension: optional uint32 optional_uint32_extension_lite = 3; - */ -export const optional_uint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 2); - -/** - * @generated from extension: optional uint64 optional_uint64_extension_lite = 4; - */ -export const optional_uint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 3); - -/** - * @generated from extension: optional sint32 optional_sint32_extension_lite = 5; - */ -export const optional_sint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 4); - -/** - * @generated from extension: optional sint64 optional_sint64_extension_lite = 6; - */ -export const optional_sint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 5); - -/** - * @generated from extension: optional fixed32 optional_fixed32_extension_lite = 7; - */ -export const optional_fixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 6); - -/** - * @generated from extension: optional fixed64 optional_fixed64_extension_lite = 8; - */ -export const optional_fixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 7); - -/** - * @generated from extension: optional sfixed32 optional_sfixed32_extension_lite = 9; - */ -export const optional_sfixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 8); - -/** - * @generated from extension: optional sfixed64 optional_sfixed64_extension_lite = 10; - */ -export const optional_sfixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 9); - -/** - * @generated from extension: optional float optional_float_extension_lite = 11; - */ -export const optional_float_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 10); - -/** - * @generated from extension: optional double optional_double_extension_lite = 12; - */ -export const optional_double_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 11); - -/** - * @generated from extension: optional bool optional_bool_extension_lite = 13; - */ -export const optional_bool_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 12); - -/** - * @generated from extension: optional string optional_string_extension_lite = 14; - */ -export const optional_string_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 13); - -/** - * @generated from extension: optional bytes optional_bytes_extension_lite = 15; - */ -export const optional_bytes_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 14); - -/** - * @generated from extension: optional protobuf_unittest.OptionalGroup_extension_lite optionalgroup_extension_lite = 16; - */ -export const optionalgroup_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 15); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_nested_message_extension_lite = 18; - */ -export const optional_nested_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 16); - -/** - * @generated from extension: optional protobuf_unittest.ForeignMessageLite optional_foreign_message_extension_lite = 19; - */ -export const optional_foreign_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 17); - -/** - * @generated from extension: optional protobuf_unittest_import.ImportMessageLite optional_import_message_extension_lite = 20; - */ -export const optional_import_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 18); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedEnum optional_nested_enum_extension_lite = 21; - */ -export const optional_nested_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 19); - -/** - * @generated from extension: optional protobuf_unittest.ForeignEnumLite optional_foreign_enum_extension_lite = 22; - */ -export const optional_foreign_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 20); - -/** - * @generated from extension: optional protobuf_unittest_import.ImportEnumLite optional_import_enum_extension_lite = 23; - */ -export const optional_import_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 21); - -/** - * @generated from extension: optional string optional_string_piece_extension_lite = 24; - */ -export const optional_string_piece_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 22); - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: optional string optional_cord_extension_lite = 25; - */ -export const optional_cord_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 23); - -/** - * @generated from extension: optional protobuf_unittest_import.PublicImportMessageLite optional_public_import_message_extension_lite = 26; - */ -export const optional_public_import_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 24); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_lazy_message_extension_lite = 27; - */ -export const optional_lazy_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 25); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage optional_unverified_lazy_message_extension_lite = 28; - */ -export const optional_unverified_lazy_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 26); - -/** - * Repeated - * - * @generated from extension: repeated int32 repeated_int32_extension_lite = 31; - */ -export const repeated_int32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 27); - -/** - * @generated from extension: repeated int64 repeated_int64_extension_lite = 32; - */ -export const repeated_int64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 28); - -/** - * @generated from extension: repeated uint32 repeated_uint32_extension_lite = 33; - */ -export const repeated_uint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 29); - -/** - * @generated from extension: repeated uint64 repeated_uint64_extension_lite = 34; - */ -export const repeated_uint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 30); - -/** - * @generated from extension: repeated sint32 repeated_sint32_extension_lite = 35; - */ -export const repeated_sint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 31); - -/** - * @generated from extension: repeated sint64 repeated_sint64_extension_lite = 36; - */ -export const repeated_sint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 32); - -/** - * @generated from extension: repeated fixed32 repeated_fixed32_extension_lite = 37; - */ -export const repeated_fixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 33); - -/** - * @generated from extension: repeated fixed64 repeated_fixed64_extension_lite = 38; - */ -export const repeated_fixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 34); - -/** - * @generated from extension: repeated sfixed32 repeated_sfixed32_extension_lite = 39; - */ -export const repeated_sfixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 35); - -/** - * @generated from extension: repeated sfixed64 repeated_sfixed64_extension_lite = 40; - */ -export const repeated_sfixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 36); - -/** - * @generated from extension: repeated float repeated_float_extension_lite = 41; - */ -export const repeated_float_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 37); - -/** - * @generated from extension: repeated double repeated_double_extension_lite = 42; - */ -export const repeated_double_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 38); - -/** - * @generated from extension: repeated bool repeated_bool_extension_lite = 43; - */ -export const repeated_bool_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 39); - -/** - * @generated from extension: repeated string repeated_string_extension_lite = 44; - */ -export const repeated_string_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 40); - -/** - * @generated from extension: repeated bytes repeated_bytes_extension_lite = 45; - */ -export const repeated_bytes_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 41); - -/** - * @generated from extension: repeated protobuf_unittest.RepeatedGroup_extension_lite repeatedgroup_extension_lite = 46; - */ -export const repeatedgroup_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 42); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_nested_message_extension_lite = 48; - */ -export const repeated_nested_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 43); - -/** - * @generated from extension: repeated protobuf_unittest.ForeignMessageLite repeated_foreign_message_extension_lite = 49; - */ -export const repeated_foreign_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 44); - -/** - * @generated from extension: repeated protobuf_unittest_import.ImportMessageLite repeated_import_message_extension_lite = 50; - */ -export const repeated_import_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 45); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedEnum repeated_nested_enum_extension_lite = 51; - */ -export const repeated_nested_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 46); - -/** - * @generated from extension: repeated protobuf_unittest.ForeignEnumLite repeated_foreign_enum_extension_lite = 52; - */ -export const repeated_foreign_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 47); - -/** - * @generated from extension: repeated protobuf_unittest_import.ImportEnumLite repeated_import_enum_extension_lite = 53; - */ -export const repeated_import_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 48); - -/** - * @generated from extension: repeated string repeated_string_piece_extension_lite = 54; - */ -export const repeated_string_piece_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 49); - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: repeated string repeated_cord_extension_lite = 55; - */ -export const repeated_cord_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 50); - -/** - * @generated from extension: repeated protobuf_unittest.TestAllTypesLite.NestedMessage repeated_lazy_message_extension_lite = 57; - */ -export const repeated_lazy_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 51); - -/** - * Singular with defaults - * - * @generated from extension: optional int32 default_int32_extension_lite = 61 [default = 41]; - */ -export const default_int32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 52); - -/** - * @generated from extension: optional int64 default_int64_extension_lite = 62 [default = 42]; - */ -export const default_int64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 53); - -/** - * @generated from extension: optional uint32 default_uint32_extension_lite = 63 [default = 43]; - */ -export const default_uint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 54); - -/** - * @generated from extension: optional uint64 default_uint64_extension_lite = 64 [default = 44]; - */ -export const default_uint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 55); - -/** - * @generated from extension: optional sint32 default_sint32_extension_lite = 65 [default = -45]; - */ -export const default_sint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 56); - -/** - * @generated from extension: optional sint64 default_sint64_extension_lite = 66 [default = 46]; - */ -export const default_sint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 57); - -/** - * @generated from extension: optional fixed32 default_fixed32_extension_lite = 67 [default = 47]; - */ -export const default_fixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 58); - -/** - * @generated from extension: optional fixed64 default_fixed64_extension_lite = 68 [default = 48]; - */ -export const default_fixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 59); - -/** - * @generated from extension: optional sfixed32 default_sfixed32_extension_lite = 69 [default = 49]; - */ -export const default_sfixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 60); - -/** - * @generated from extension: optional sfixed64 default_sfixed64_extension_lite = 70 [default = -50]; - */ -export const default_sfixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 61); - -/** - * @generated from extension: optional float default_float_extension_lite = 71 [default = 51.5]; - */ -export const default_float_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 62); - -/** - * @generated from extension: optional double default_double_extension_lite = 72 [default = 52000]; - */ -export const default_double_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 63); - -/** - * @generated from extension: optional bool default_bool_extension_lite = 73 [default = true]; - */ -export const default_bool_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 64); - -/** - * @generated from extension: optional string default_string_extension_lite = 74 [default = "hello"]; - */ -export const default_string_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 65); - -/** - * @generated from extension: optional bytes default_bytes_extension_lite = 75 [default = "world"]; - */ -export const default_bytes_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 66); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedEnum default_nested_enum_extension_lite = 81 [default = BAR]; - */ -export const default_nested_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 67); - -/** - * @generated from extension: optional protobuf_unittest.ForeignEnumLite default_foreign_enum_extension_lite = 82 [default = FOREIGN_LITE_BAR]; - */ -export const default_foreign_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 68); - -/** - * @generated from extension: optional protobuf_unittest_import.ImportEnumLite default_import_enum_extension_lite = 83 [default = IMPORT_LITE_BAR]; - */ -export const default_import_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 69); - -/** - * @generated from extension: optional string default_string_piece_extension_lite = 84 [default = "abc"]; - */ -export const default_string_piece_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 70); - -/** - * TODO: ctype=CORD is not supported for extension. Add - * ctype=CORD option back after it is supported. - * - * @generated from extension: optional string default_cord_extension_lite = 85 [default = "123"]; - */ -export const default_cord_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 71); - -/** - * For oneof test - * - * @generated from extension: optional uint32 oneof_uint32_extension_lite = 111; - */ -export const oneof_uint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 72); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite.NestedMessage oneof_nested_message_extension_lite = 112; - */ -export const oneof_nested_message_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 73); - -/** - * @generated from extension: optional string oneof_string_extension_lite = 113; - */ -export const oneof_string_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 74); - -/** - * @generated from extension: optional bytes oneof_bytes_extension_lite = 114; - */ -export const oneof_bytes_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 75); - -/** - * @generated from extension: repeated int32 packed_int32_extension_lite = 90 [packed = true]; - */ -export const packed_int32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 76); - -/** - * @generated from extension: repeated int64 packed_int64_extension_lite = 91 [packed = true]; - */ -export const packed_int64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 77); - -/** - * @generated from extension: repeated uint32 packed_uint32_extension_lite = 92 [packed = true]; - */ -export const packed_uint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 78); - -/** - * @generated from extension: repeated uint64 packed_uint64_extension_lite = 93 [packed = true]; - */ -export const packed_uint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 79); - -/** - * @generated from extension: repeated sint32 packed_sint32_extension_lite = 94 [packed = true]; - */ -export const packed_sint32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 80); - -/** - * @generated from extension: repeated sint64 packed_sint64_extension_lite = 95 [packed = true]; - */ -export const packed_sint64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 81); - -/** - * @generated from extension: repeated fixed32 packed_fixed32_extension_lite = 96 [packed = true]; - */ -export const packed_fixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 82); - -/** - * @generated from extension: repeated fixed64 packed_fixed64_extension_lite = 97 [packed = true]; - */ -export const packed_fixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 83); - -/** - * @generated from extension: repeated sfixed32 packed_sfixed32_extension_lite = 98 [packed = true]; - */ -export const packed_sfixed32_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 84); - -/** - * @generated from extension: repeated sfixed64 packed_sfixed64_extension_lite = 99 [packed = true]; - */ -export const packed_sfixed64_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 85); - -/** - * @generated from extension: repeated float packed_float_extension_lite = 100 [packed = true]; - */ -export const packed_float_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 86); - -/** - * @generated from extension: repeated double packed_double_extension_lite = 101 [packed = true]; - */ -export const packed_double_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 87); - -/** - * @generated from extension: repeated bool packed_bool_extension_lite = 102 [packed = true]; - */ -export const packed_bool_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 88); - -/** - * @generated from extension: repeated protobuf_unittest.ForeignEnumLite packed_enum_extension_lite = 103 [packed = true]; - */ -export const packed_enum_extension_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 89); - -/** - * @generated from extension: optional protobuf_unittest.TestAllTypesLite test_all_types_lite = 536860000; - */ -export const test_all_types_lite: GenDescExtension = /*@__PURE__*/ - extDesc(fileDesc_google_protobuf_unittest_lite, 90); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_pb.ts index cbee693f1..47114425f 100644 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_pb.ts +++ b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_pb.ts @@ -36,7 +36,7 @@ import type { Message } from "@bufbuild/protobuf"; import type { PublicImportMessage } from "./unittest_import_public_pb.js"; export const fileDesc_google_protobuf_unittest: GenDescFile = /*@__PURE__*/ - fileDesc("Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0It4aCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSRAoNb3B0aW9uYWxncm91cBgQIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwEk4KF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJQChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWwogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICeAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSRAoNcmVwZWF0ZWRncm91cBguIAMoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwEk4KF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJQChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESGQoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDISGgoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NBIbCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3EhsKD2RlZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwEhsKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZRIdCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGQSTAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVISSQoUZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVISTQoTZGVmYXVsdF9pbXBvcnRfZW51bRhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSEiUKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJOgNhYmNCAggCEh0KDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIARIWCgxvbmVvZl91aW50MzIYbyABKA1IABJNChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0ZXMYciABKAxIABIYCgpvbmVvZl9jb3JkGHMgASgJQgIIAUgAEiAKEm9uZW9mX3N0cmluZ19waWVjZRh0IAEoCUICCAJIABJWChlvbmVvZl9sYXp5X25lc3RlZF9tZXNzYWdlGHUgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBRoaCg1PcHRpb25hbEdyb3VwEgkKAWEYESABKAUaGgoNUmVwZWF0ZWRHcm91cBIJCgFhGC8gASgFIjkKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQitAIKEk5lc3RlZFRlc3RBbGxUeXBlcxI0CgVjaGlsZBgBIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxIwCgdwYXlsb2FkGAIgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEj0KDnJlcGVhdGVkX2NoaWxkGAMgAygLMiUucHJvdG9idWZfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEj0KCmxhenlfY2hpbGQYBCABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXNCAigBEjgKC2VhZ2VyX2NoaWxkGAUgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzQgIoACKdAgoUVGVzdERlcHJlY2F0ZWRGaWVsZHMSHAoQZGVwcmVjYXRlZF9pbnQzMhgBIAEoBUICGAESJgoaZGVwcmVjYXRlZF9yZXBlYXRlZF9zdHJpbmcYBCADKAlCAhgBEk0KEmRlcHJlY2F0ZWRfbWVzc2FnZRgDIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIYARInChlkZXByZWNhdGVkX2ludDMyX2luX29uZW9mGAIgASgFQgIYAUgAEjcKBm5lc3RlZBgFIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REZXByZWNhdGVkRmllbGRzQg4KDG9uZW9mX2ZpZWxkcyIbChVUZXN0RGVwcmVjYXRlZE1lc3NhZ2U6AhgBIiYKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUSCQoBZBgCIAEoBSIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6Ih0KEVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiIkChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIJCgFhGBEgASgFIiQKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgkKAWEYLyABKAUivgEKHFRlc3RNaXhlZEZpZWxkc0FuZEV4dGVuc2lvbnMSCQoBYRgBIAEoBRIJCgFiGAMgAygHKgQIAhADKgQIBBAFMj0KAWMSLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWl4ZWRGaWVsZHNBbmRFeHRlbnNpb25zGAIgASgFUgFjMj0KAWQSLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWl4ZWRGaWVsZHNBbmRFeHRlbnNpb25zGAQgAygHUgFkIrUBCglUZXN0R3JvdXASQQoNb3B0aW9uYWxncm91cBgQIAEoCjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RHcm91cC5PcHRpb25hbEdyb3VwEj0KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtGiYKDU9wdGlvbmFsR3JvdXASCQoBYRgRIAEoBRIKCgJ6ehhZIAEoBSIeChJUZXN0R3JvdXBFeHRlbnNpb24qCAgBEICAgIACIosEChNUZXN0TmVzdGVkRXh0ZW5zaW9uGiQKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgkKAWEYESABKAUyPwoEdGVzdBIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOoHIAEoCToEdGVzdFIEdGVzdDJdChduZXN0ZWRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOsHIAEoCVIVbmVzdGVkU3RyaW5nRXh0ZW5zaW9uMp4BChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RHcm91cEV4dGVuc2lvbhgQIAEoCjI+LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRFeHRlbnNpb24uT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb24yjAEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0R3JvdXBFeHRlbnNpb24YFiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbiJsChJUZXN0Q2hpbGRFeHRlbnNpb24SCQoBYRgBIAEoCRIJCgFiGAIgASgJEkAKEm9wdGlvbmFsX2V4dGVuc2lvbhgDIAEoCzIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zItYCChZUZXN0Q2hpbGRFeHRlbnNpb25EYXRhEgkKAWEYASABKAkSCQoBYhgCIAEoCRJhChJvcHRpb25hbF9leHRlbnNpb24YAyABKAsyRS5wcm90b2J1Zl91bml0dGVzdC5UZXN0Q2hpbGRFeHRlbnNpb25EYXRhLk5lc3RlZFRlc3RBbGxFeHRlbnNpb25zRGF0YRrCAQobTmVzdGVkVGVzdEFsbEV4dGVuc2lvbnNEYXRhEnIKB2R5bmFtaWMYgMSuwwEgASgLMl0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdENoaWxkRXh0ZW5zaW9uRGF0YS5OZXN0ZWRUZXN0QWxsRXh0ZW5zaW9uc0RhdGEuTmVzdGVkRHluYW1pY0V4dGVuc2lvbnMaLwoXTmVzdGVkRHluYW1pY0V4dGVuc2lvbnMSCQoBYRgBIAEoBRIJCgFiGAIgASgFIlsKGFRlc3ROZXN0ZWRDaGlsZEV4dGVuc2lvbhIJCgFhGAEgASgFEjQKBWNoaWxkGAIgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdENoaWxkRXh0ZW5zaW9uImMKHFRlc3ROZXN0ZWRDaGlsZEV4dGVuc2lvbkRhdGESCQoBYRgBIAEoBRI4CgVjaGlsZBgCIAEoCzIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RDaGlsZEV4dGVuc2lvbkRhdGEiVAoQVGVzdFJlcXVpcmVkRW51bRI1Cg1yZXF1aXJlZF9lbnVtGAEgAigOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SCQoBYRgCIAEoBSKzAQoWVGVzdFJlcXVpcmVkRW51bU5vTWFzaxJLCg1yZXF1aXJlZF9lbnVtGAEgAigOMjQucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bU5vTWFzay5OZXN0ZWRFbnVtEgkKAWEYAiABKAUiQQoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxACEgcKA0JBUhBkEhAKA0JBWhD///////////8BIrMCChVUZXN0UmVxdWlyZWRFbnVtTXVsdGkSTAoPcmVxdWlyZWRfZW51bV80GAQgAigOMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bU11bHRpLk5lc3RlZEVudW0SCwoDYV8zGAMgASgFEkwKD3JlcXVpcmVkX2VudW1fMhgCIAIoDjIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZEVudW1NdWx0aS5OZXN0ZWRFbnVtEjcKD3JlcXVpcmVkX2VudW1fMRgBIAIoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtIjgKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQZCLEAwoXVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkSGwoTcmVxdWlyZWRfZml4ZWQzMl84MBhQIAIoBxIbChNyZXF1aXJlZF9maXhlZDMyXzcwGEYgAigHEk8KEHJlcXVpcmVkX2VudW1fNjQYQCACKA4yNS5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWROb01hc2tNdWx0aS5OZXN0ZWRFbnVtEk4KD3JlcXVpcmVkX2VudW1fNBgEIAIoDjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpLk5lc3RlZEVudW0SCwoDYV8zGAMgASgFEk4KD3JlcXVpcmVkX2VudW1fMhgCIAIoDjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpLk5lc3RlZEVudW0SNwoPcmVxdWlyZWRfZW51bV8xGAEgAigOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0iOAoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhBkIqEGCgxUZXN0UmVxdWlyZWQSCQoBYRgBIAIoBRIOCgZkdW1teTIYAiABKAUSCQoBYhgDIAIoBRIOCgZkdW1teTQYBCABKAUSDgoGZHVtbXk1GAUgASgFEg4KBmR1bW15NhgGIAEoBRIOCgZkdW1teTcYByABKAUSDgoGZHVtbXk4GAggASgFEg4KBmR1bW15ORgJIAEoBRIPCgdkdW1teTEwGAogASgFEg8KB2R1bW15MTEYCyABKAUSDwoHZHVtbXkxMhgMIAEoBRIPCgdkdW1teTEzGA0gASgFEg8KB2R1bW15MTQYDiABKAUSDwoHZHVtbXkxNRgPIAEoBRIPCgdkdW1teTE2GBAgASgFEg8KB2R1bW15MTcYESABKAUSDwoHZHVtbXkxOBgSIAEoBRIPCgdkdW1teTE5GBMgASgFEg8KB2R1bW15MjAYFCABKAUSDwoHZHVtbXkyMRgVIAEoBRIPCgdkdW1teTIyGBYgASgFEg8KB2R1bW15MjMYFyABKAUSDwoHZHVtbXkyNBgYIAEoBRIPCgdkdW1teTI1GBkgASgFEg8KB2R1bW15MjYYGiABKAUSDwoHZHVtbXkyNxgbIAEoBRIPCgdkdW1teTI4GBwgASgFEg8KB2R1bW15MjkYHSABKAUSDwoHZHVtbXkzMBgeIAEoBRIPCgdkdW1teTMxGB8gASgFEg8KB2R1bW15MzIYICABKAUSCQoBYxghIAIoBRI7ChBvcHRpb25hbF9mb3JlaWduGCIgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2UyXgoGc2luZ2xlEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6AcgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkUgZzaW5nbGUyXAoFbXVsdGkSJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxjpByADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRSBW11bHRpIuQBChNUZXN0UmVxdWlyZWRGb3JlaWduEjkKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQSOQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBINCgVkdW1teRgDIAEoBRJIChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYBCABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXNCAigBIsYBChNUZXN0UmVxdWlyZWRNZXNzYWdlEjkKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQSOQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBI5ChByZXF1aXJlZF9tZXNzYWdlGAMgAigLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkIrMDChlUZXN0TmVzdGVkUmVxdWlyZWRGb3JlaWduEjsKBWNoaWxkGAEgASgLMiwucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZFJlcXVpcmVkRm9yZWlnbhI3CgdwYXlsb2FkGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRm9yZWlnbhINCgVkdW1teRgDIAEoBRI6Cg1yZXF1aXJlZF9lbnVtGAUgASgLMiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bRJIChVyZXF1aXJlZF9lbnVtX25vX21hc2sYBiABKAsyKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTm9NYXNrEkUKE3JlcXVpcmVkX2VudW1fbXVsdGkYByABKAsyKC5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTXVsdGkSRAoQcmVxdWlyZWRfbm9fbWFzaxgJIAEoCzIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpIloKEVRlc3RGb3JlaWduTmVzdGVkEkUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2UiEgoQVGVzdEVtcHR5TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgBEICAgIACIlkKF1Rlc3RQaWNrbGVOZXN0ZWRNZXNzYWdlGj4KDU5lc3RlZE1lc3NhZ2USCgoCYmIYASABKAUaIQoTTmVzdGVkTmVzdGVkTWVzc2FnZRIKCgJjYxgBIAEoBSI3ChtUZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5nZXMqBAgqECsqBgivIBCUISoKCICABBCAgICAAiI0ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISCQoBYRgBIAEoBRINCgJiYhj///9/IAEoBSJVChRUZXN0UmVjdXJzaXZlTWVzc2FnZRIyCgFhGAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USCQoBaRgCIAEoBSLmAwoUVGVzdE11dHVhbFJlY3Vyc2lvbkESMwoCYmIYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQhJCCghzdWJncm91cBgCIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Ykdyb3VwEkQKCXN1Ymdyb3VwchgFIAMoCjIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Ykdyb3VwUhpACgpTdWJNZXNzYWdlEjIKAWIYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQhqNAQoIU3ViR3JvdXASRwoLc3ViX21lc3NhZ2UYAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJNZXNzYWdlEjgKD25vdF9pbl90aGlzX3NjYxgEIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxo9CglTdWJHcm91cFISMAoHcGF5bG9hZBgGIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyJiChRUZXN0TXV0dWFsUmVjdXJzaW9uQhIyCgFhGAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVhbFJlY3Vyc2lvbkESFgoOb3B0aW9uYWxfaW50MzIYAiABKAUiygEKEVRlc3RJc0luaXRpYWxpemVkEkQKC3N1Yl9tZXNzYWdlGAEgASgLMi8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZRpvCgpTdWJNZXNzYWdlEkoKCHN1Ymdyb3VwGAEgASgKMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZS5TdWJHcm91cBoVCghTdWJHcm91cBIJCgFpGAIgAigFIrMBChJUZXN0RHVwRmllbGROdW1iZXISCQoBYRgBIAEoBRI2CgNmb28YAiABKAoyKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RHVwRmllbGROdW1iZXIuRm9vEjYKA2JhchgDIAEoCjIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REdXBGaWVsZE51bWJlci5CYXIaEAoDRm9vEgkKAWEYASABKAUaEAoDQmFyEgkKAWEYASABKAUiTAoQVGVzdEVhZ2VyTWVzc2FnZRI4CgtzdWJfbWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0ICKAAiSwoPVGVzdExhenlNZXNzYWdlEjgKC3N1Yl9tZXNzYWdlGAEgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzQgIoASJXChdUZXN0TGF6eU1lc3NhZ2VSZXBlYXRlZBI8ChByZXBlYXRlZF9tZXNzYWdlGAEgAygLMiIucHJvdG9idWZfdW5pdHRlc3QuVGVzdExhenlNZXNzYWdlIo8CChJUZXN0RWFnZXJNYXliZUxhenkSNAoLbWVzc2FnZV9mb28YASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSNAoLbWVzc2FnZV9iYXIYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSSAoLbWVzc2FnZV9iYXoYAyABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RWFnZXJNYXliZUxhenkuTmVzdGVkTWVzc2FnZRpDCg1OZXN0ZWRNZXNzYWdlEjIKBnBhY2tlZBgBIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRUeXBlcyKAAgoYVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzEloKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGAEgASgLMjkucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzLk5lc3RlZE1lc3NhZ2UahwEKDU5lc3RlZE1lc3NhZ2USJAocbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9pbnQzMhgBIAMoBRJQCiVuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ZvcmVpZ25tZXNzYWdlGAIgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2Ui5QMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEhYKDlByaW1pdGl2ZUZpZWxkGAEgASgFEhMKC1N0cmluZ0ZpZWxkGAIgASgJEjEKCUVudW1GaWVsZBgDIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEjcKDE1lc3NhZ2VGaWVsZBgEIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEhwKEFN0cmluZ1BpZWNlRmllbGQYBSABKAlCAggCEhUKCUNvcmRGaWVsZBgGIAEoCUICCAESHgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBRIbChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJEjkKEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SPwoUUmVwZWF0ZWRNZXNzYWdlRmllbGQYCiADKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRIkChhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQYCyADKAlCAggCEh0KEVJlcGVhdGVkQ29yZEZpZWxkGAwgAygJQgIIASLVAQoSVGVzdEZpZWxkT3JkZXJpbmdzEhEKCW15X3N0cmluZxgLIAEoCRIOCgZteV9pbnQYASABKAMSEAoIbXlfZmxvYXQYZSABKAISVQoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzLk5lc3RlZE1lc3NhZ2UaJwoNTmVzdGVkTWVzc2FnZRIKCgJvbxgCIAEoAxIKCgJiYhgBIAEoBSoECAIQCyoECAwQZSKwAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczESEQoJbXlfc3RyaW5nGAEgASgJMoEBChN0ZXN0X2V4dF9vcmRlcmluZ3MxEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGA0gASgLMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczFSEXRlc3RFeHRPcmRlcmluZ3MxIvsCChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMhIRCglteV9zdHJpbmcYASABKAkayAEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MzEhEKCW15X3N0cmluZxgBIAEoCTKZAQoTdGVzdF9leHRfb3JkZXJpbmdzMxIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgOIAEoCzJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MzUhF0ZXN0RXh0T3JkZXJpbmdzMzKBAQoTdGVzdF9leHRfb3JkZXJpbmdzMhIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgMIAEoCzIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyUhF0ZXN0RXh0T3JkZXJpbmdzMiK2BwoYVGVzdEV4dHJlbWVEZWZhdWx0VmFsdWVzEj8KDWVzY2FwZWRfYnl0ZXMYASABKAw6KFwwMDBcMDAxXDAwN1wwMTBcMDE0XG5cclx0XDAxM1xcXCdcIlwzNzYSIAoMbGFyZ2VfdWludDMyGAIgASgNOgo0Mjk0OTY3Mjk1EioKDGxhcmdlX3VpbnQ2NBgDIAEoBDoUMTg0NDY3NDQwNzM3MDk1NTE2MTUSIAoLc21hbGxfaW50MzIYBCABKAU6Cy0yMTQ3NDgzNjQ3EikKC3NtYWxsX2ludDY0GAUgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwNxInChJyZWFsbHlfc21hbGxfaW50MzIYFSABKAU6Cy0yMTQ3NDgzNjQ4EjAKEnJlYWxseV9zbWFsbF9pbnQ2NBgWIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDgSGAoLdXRmOF9zdHJpbmcYBiABKAk6A+GItBIVCgp6ZXJvX2Zsb2F0GAcgASgCOgEwEhQKCW9uZV9mbG9hdBgIIAEoAjoBMRIYCgtzbWFsbF9mbG9hdBgJIAEoAjoDMS41Eh4KEm5lZ2F0aXZlX29uZV9mbG9hdBgKIAEoAjoCLTESHAoObmVnYXRpdmVfZmxvYXQYCyABKAI6BC0xLjUSGgoLbGFyZ2VfZmxvYXQYDCABKAI6BTJlKzA4EiQKFHNtYWxsX25lZ2F0aXZlX2Zsb2F0GA0gASgCOgYtOGUtMjgSFwoKaW5mX2RvdWJsZRgOIAEoAToDaW5mEhwKDm5lZ19pbmZfZG91YmxlGA8gASgBOgQtaW5mEhcKCm5hbl9kb3VibGUYECABKAE6A25hbhIWCglpbmZfZmxvYXQYESABKAI6A2luZhIbCg1uZWdfaW5mX2Zsb2F0GBIgASgCOgQtaW5mEhYKCW5hbl9mbG9hdBgTIAEoAjoDbmFuEisKDGNwcF90cmlncmFwaBgUIAEoCToVPyA/ID8/ID8/ID8/PyA/Py8gPz8tEiAKEHN0cmluZ193aXRoX3plcm8YFyABKAk6BmhlbABsbxIiCg9ieXRlc193aXRoX3plcm8YGCABKAw6CXdvclwwMDBsZBIoChZzdHJpbmdfcGllY2Vfd2l0aF96ZXJvGBkgASgJOgRhYgBjQgIIAhIgCg5jb3JkX3dpdGhfemVybxgaIAEoCToEMTIAM0ICCAESJgoScmVwbGFjZW1lbnRfc3RyaW5nGBsgASgJOgoke3Vua25vd259IksKEVNwYXJzZUVudW1NZXNzYWdlEjYKC3NwYXJzZV9lbnVtGAEgASgOMiEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFNwYXJzZUVudW0iGQoJT25lU3RyaW5nEgwKBGRhdGEYASABKAkiGgoKTW9yZVN0cmluZxIMCgRkYXRhGAEgAygJIhgKCE9uZUJ5dGVzEgwKBGRhdGEYASABKAwiGQoJTW9yZUJ5dGVzEgwKBGRhdGEYASADKAwi6wMKEk1hbnlPcHRpb25hbFN0cmluZxIMCgRzdHIxGAEgASgJEgwKBHN0cjIYAiABKAkSDAoEc3RyMxgDIAEoCRIMCgRzdHI0GAQgASgJEgwKBHN0cjUYBSABKAkSDAoEc3RyNhgGIAEoCRIMCgRzdHI3GAcgASgJEgwKBHN0cjgYCCABKAkSDAoEc3RyORgJIAEoCRINCgVzdHIxMBgKIAEoCRINCgVzdHIxMRgLIAEoCRINCgVzdHIxMhgMIAEoCRINCgVzdHIxMxgNIAEoCRINCgVzdHIxNBgOIAEoCRINCgVzdHIxNRgPIAEoCRINCgVzdHIxNhgQIAEoCRINCgVzdHIxNxgRIAEoCRINCgVzdHIxOBgSIAEoCRINCgVzdHIxORgTIAEoCRINCgVzdHIyMBgUIAEoCRINCgVzdHIyMRgVIAEoCRINCgVzdHIyMhgWIAEoCRINCgVzdHIyMxgXIAEoCRINCgVzdHIyNBgYIAEoCRINCgVzdHIyNRgZIAEoCRINCgVzdHIyNhgaIAEoCRINCgVzdHIyNxgbIAEoCRINCgVzdHIyOBgcIAEoCRINCgVzdHIyORgdIAEoCRINCgVzdHIzMBgeIAEoCRINCgVzdHIzMRgfIAEoCRINCgVzdHIzMhggIAEoCSIcCgxJbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoBSIdCg1VaW50MzJNZXNzYWdlEgwKBGRhdGEYASABKA0iHAoMSW50NjRNZXNzYWdlEgwKBGRhdGEYASABKAMiHQoNVWludDY0TWVzc2FnZRIMCgRkYXRhGAEgASgEIhsKC0Jvb2xNZXNzYWdlEgwKBGRhdGEYASABKAgi0AEKCVRlc3RPbmVvZhIRCgdmb29faW50GAEgASgFSAASFAoKZm9vX3N0cmluZxgCIAEoCUgAEjYKC2Zvb19tZXNzYWdlGAMgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzSAASOQoIZm9vZ3JvdXAYBCABKAoyJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0T25lb2YuRm9vR3JvdXBIABogCghGb29Hcm91cBIJCgFhGAUgASgFEgkKAWIYBiABKAlCBQoDZm9vIucBChxUZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlEg8KB2Zvb19pbnQYASABKAUSEgoKZm9vX3N0cmluZxgCIAEoCRI0Cgtmb29fbWVzc2FnZRgDIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJKCghmb29ncm91cBgEIAEoCjI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUuRm9vR3JvdXAaIAoIRm9vR3JvdXASCQoBYRgFIAEoBRIJCgFiGAYgASgJIvMHCgpUZXN0T25lb2YyEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASFgoIZm9vX2NvcmQYAyABKAlCAggBSAASHgoQZm9vX3N0cmluZ19waWVjZRgEIAEoCUICCAJIABITCglmb29fYnl0ZXMYBSABKAxIABI8Cghmb29fZW51bRgGIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkRW51bUgAEkIKC2Zvb19tZXNzYWdlGAcgASgLMisucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlSAASOgoIZm9vZ3JvdXAYCCABKAoyJi5wcm90b2J1Zl91bml0dGVzdC5UZXN0T25lb2YyLkZvb0dyb3VwSAASSwoQZm9vX2xhenlfbWVzc2FnZRgLIAEoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUICKAFIABIcCg5mb29fYnl0ZXNfY29yZBgeIAEoDEICCAFIABIUCgdiYXJfaW50GAwgASgFOgE1SAESHAoKYmFyX3N0cmluZxgNIAEoCToGU1RSSU5HSAESHAoIYmFyX2NvcmQYDiABKAk6BENPUkRCAggBSAESJgoQYmFyX3N0cmluZ19waWVjZRgPIAEoCToGU1BJRUNFQgIIAkgBEhoKCWJhcl9ieXRlcxgQIAEoDDoFQllURVNIARJBCghiYXJfZW51bRgRIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkRW51bToDQkFSSAESKQodYmFyX3N0cmluZ193aXRoX2VtcHR5X2RlZmF1bHQYFCABKAk6AEgBEisKG2Jhcl9jb3JkX3dpdGhfZW1wdHlfZGVmYXVsdBgVIAEoCToAQgIIAUgBEjMKI2Jhcl9zdHJpbmdfcGllY2Vfd2l0aF9lbXB0eV9kZWZhdWx0GBYgASgJOgBCAggCSAESKAocYmFyX2J5dGVzX3dpdGhfZW1wdHlfZGVmYXVsdBgXIAEoDDoASAESDwoHYmF6X2ludBgSIAEoBRIXCgpiYXpfc3RyaW5nGBMgASgJOgNCQVoaIAoIRm9vR3JvdXASCQoBYRgJIAEoBRIJCgFiGAogASgJGjMKDU5lc3RlZE1lc3NhZ2USDwoHbW9vX2ludBgBIAEoAxIRCgljb3JnZV9pbnQYAiADKAUiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQA0IFCgNmb29CBQoDYmFyIowCChFUZXN0UmVxdWlyZWRPbmVvZhIRCgdmb29faW50GAEgASgFSAASFAoKZm9vX3N0cmluZxgCIAEoCUgAEkkKC2Zvb19tZXNzYWdlGAMgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkT25lb2YuTmVzdGVkTWVzc2FnZUgAElIKEGZvb19sYXp5X21lc3NhZ2UYBCABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlQgIoAUgAGigKDU5lc3RlZE1lc3NhZ2USFwoPcmVxdWlyZWRfZG91YmxlGAEgAigBQgUKA2ZvbyKqAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI3CgtwYWNrZWRfZW51bRhnIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLIAwoRVGVzdFVucGFja2VkVHlwZXMSGgoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAEhoKDnVucGFja2VkX2ludDY0GFsgAygDQgIQABIbCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAEhsKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEAASGwoPdW5wYWNrZWRfc2ludDMyGF4gAygRQgIQABIbCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAEhwKEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAEhwKEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAEh0KEXVucGFja2VkX3NmaXhlZDMyGGIgAygPQgIQABIdChF1bnBhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAASGgoOdW5wYWNrZWRfZmxvYXQYZCADKAJCAhAAEhsKD3VucGFja2VkX2RvdWJsZRhlIAMoAUICEAASGQoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEAASOQoNdW5wYWNrZWRfZW51bRhnIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQACIgChRUZXN0UGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIiIgoWVGVzdFVucGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIimQQKFVRlc3REeW5hbWljRXh0ZW5zaW9ucxIZChBzY2FsYXJfZXh0ZW5zaW9uGNAPIAEoBxI3Cg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRJZChZkeW5hbWljX2VudW1fZXh0ZW5zaW9uGNIPIAEoDjI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljRW51bVR5cGUSPQoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USXwoZZHluYW1pY19tZXNzYWdlX2V4dGVuc2lvbhjUDyABKAsyOy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VUeXBlEhsKEnJlcGVhdGVkX2V4dGVuc2lvbhjVDyADKAkSHQoQcGFja2VkX2V4dGVuc2lvbhjWDyADKBFCAhABGiwKEkR5bmFtaWNNZXNzYWdlVHlwZRIWCg1keW5hbWljX2ZpZWxkGLQQIAEoBSJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlOQU1JQ19GT08QmBESEAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQmhEifAoSVGVzdFJlcGVhdGVkU3RyaW5nEhgKEHJlcGVhdGVkX3N0cmluZzEYASADKAkSGAoQcmVwZWF0ZWRfc3RyaW5nMhgCIAMoCRIYChByZXBlYXRlZF9ieXRlczExGAsgAygMEhgKEHJlcGVhdGVkX2J5dGVzMTIYDCADKAwiwAEKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEhgKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRfaW50MzIYDSADKAUSGQoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVwZWF0ZWRfaW50NjQY/w8gAygDEhgKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAISGQoPcmVwZWF0ZWRfdWludDY0GP//DyADKAQikQoKEFRlc3RQYXJzaW5nTWVyZ2USOwoScmVxdWlyZWRfYWxsX3R5cGVzGAEgAigLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgCIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYAyADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSSAoNb3B0aW9uYWxncm91cBgKIAEoCjIxLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuT3B0aW9uYWxHcm91cBJICg1yZXBlYXRlZGdyb3VwGBQgAygKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEdyb3VwGqoEChdSZXBlYXRlZEZpZWxkc0dlbmVyYXRvchIvCgZmaWVsZDEYASADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSLwoGZmllbGQyGAIgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEi8KBmZpZWxkMxgDIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJSCgZncm91cDEYCiADKAoyQi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMRJSCgZncm91cDIYFCADKAoyQi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMhIuCgRleHQxGOgHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxIuCgRleHQyGOkHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxo5CgZHcm91cDESLwoGZmllbGQxGAsgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGjkKBkdyb3VwMhIvCgZmaWVsZDEYFSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMaUgoNT3B0aW9uYWxHcm91cBJBChhvcHRpb25hbF9ncm91cF9hbGxfdHlwZXMYCyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMaUgoNUmVwZWF0ZWRHcm91cBJBChhyZXBlYXRlZF9ncm91cF9hbGxfdHlwZXMYFSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMqCQjoBxCAgICAAjJoCgxvcHRpb25hbF9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlGOgHIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc1ILb3B0aW9uYWxFeHQyaAoMcmVwZWF0ZWRfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZRjpByADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNSC3JlcGVhdGVkRXh0IlIKElRlc3RNZXJnZUV4Y2VwdGlvbhI8Cg5hbGxfZXh0ZW5zaW9ucxgBIAEoCzIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zIkQKG1Rlc3RDb21tZW50SW5qZWN0aW9uTWVzc2FnZRIlCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0aGlzLiJZCg9UZXN0TWVzc2FnZVNpemUSCgoCbTEYASABKAgSCgoCbTIYAiABKAMSCgoCbTMYAyABKAgSCgoCbTQYBCABKAkSCgoCbTUYBSABKAUSCgoCbTYYBiABKAMiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSKmAQoMVGVzdEpzb25OYW1lEhMKC2ZpZWxkX25hbWUxGAEgASgFEhIKCmZpZWxkTmFtZTIYAiABKAUSEgoKRmllbGROYW1lMxgDIAEoBRIUCgxfZmllbGRfbmFtZTQYBCABKAUSEwoLRklFTERfTkFNRTUYBSABKAUSGgoLZmllbGRfbmFtZTYYBiABKAVSBUB0eXBlEhIKCmZpZWxkbmFtZTcYByABKAUi/QUKFFRlc3RIdWdlRmllbGROdW1iZXJzEhoKDm9wdGlvbmFsX2ludDMyGPD4//8BIAEoBRIUCghmaXhlZF8zMhjx+P//ASABKAUSHgoOcmVwZWF0ZWRfaW50MzIY8vj//wEgAygFQgIQABIcCgxwYWNrZWRfaW50MzIY8/j//wEgAygFQgIQARI5Cg1vcHRpb25hbF9lbnVtGPT4//8BIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEhsKD29wdGlvbmFsX3N0cmluZxj1+P//ASABKAkSGgoOb3B0aW9uYWxfYnl0ZXMY9vj//wEgASgMEj8KEG9wdGlvbmFsX21lc3NhZ2UY9/j//wEgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USUAoNb3B0aW9uYWxncm91cBj4+P//ASABKAoyNS5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVycy5PcHRpb25hbEdyb3VwElsKEXN0cmluZ19zdHJpbmdfbWFwGPr4//8BIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RIdWdlRmllbGROdW1iZXJzLlN0cmluZ1N0cmluZ01hcEVudHJ5EhoKDG9uZW9mX3VpbnQzMhj7+P//ASABKA1IABJDChRvbmVvZl90ZXN0X2FsbF90eXBlcxj8+P//ASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNIABIaCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSAASGQoLb25lb2ZfYnl0ZXMY/vj//wEgASgMSAAaJAoNT3B0aW9uYWxHcm91cBITCgdncm91cF9hGPn4//8BIAEoBRo2ChRTdHJpbmdTdHJpbmdNYXBFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQisQEKGFRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRIOCgZmaWVsZDEYASABKAUSDgoGZmllbGQyGAIgASgFEg4KBmZpZWxkMxgDIAEoBRIOCgZmaWVsZDQYBCABKAUSDgoGZmllbGQ2GAYgASgFEg4KBmZpZWxkNxgHIAEoBRIOCgZmaWVsZDgYCCABKAUSDgoGZmllbGQ5GAkgASgFEg8KB2ZpZWxkMTAYCiABKAUqBAgFEAYilgQKHVRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyEmEKE2xheWVyMW9wdGlvbmFsZ3JvdXAYASABKAoyRC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwGpEDChNMYXllcjFPcHRpb25hbEdyb3VwEnUKE2xheWVyMnJlcGVhdGVkZ3JvdXAYAiADKAoyWC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwLkxheWVyMlJlcGVhdGVkR3JvdXASkwEKImxheWVyMmFub3RoZXJvcHRpb25hbHJlcGVhdGVkZ3JvdXAYBCADKAoyZy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwLkxheWVyMkFub3RoZXJPcHRpb25hbFJlcGVhdGVkR3JvdXAaMgoTTGF5ZXIyUmVwZWF0ZWRHcm91cBIVCg1hbm90aGVyX2ZpZWxkGAYgASgJKgQIAxAEGjkKIkxheWVyMkFub3RoZXJPcHRpb25hbFJlcGVhdGVkR3JvdXASEwoLYnV0X3doeV90aG8YBSABKAkiPAomVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uSW5uZXJFeHRlbnNpb24SEgoKaW5uZXJfbmFtZRgBIAEoCSL9AwobVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplEg8KB2Zvb19vbmUYASABKAUSDwoHZm9vX3R3bxgGIAEoBRIRCglmb29fdGhyZWUYByABKAUSEAoIZm9vX2ZvdXIYDSABKAUqBAgCEAMqBAgDEAUqBAgJEAsqBAgPEBAqBAgREBIqBAgTEBQyRwoHYmFyX29uZRIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25SYW5nZVNlcmlhbGl6ZRgCIAEoBVIGYmFyT25lMkcKB2Jhcl90d28SLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYBCABKAVSBmJhclR3bzJLCgliYXJfdGhyZWUSLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYCiABKAVSCGJhclRocmVlMkkKCGJhcl9mb3VyEi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplGA8gASgFUgdiYXJGb3VyMkkKCGJhcl9maXZlEi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplGBMgASgFUgdiYXJGaXZlIoEBChVUZXN0VmVyaWZ5SW50MzJTaW1wbGUSGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFIvUBCg9UZXN0VmVyaWZ5SW50MzISGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMiygIKFVRlc3RWZXJpZnlNb3N0bHlJbnQzMhIZChFvcHRpb25hbF9pbnQ2NF8zMBgeIAEoAxIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGAoQb3B0aW9uYWxfaW50MzJfMxgDIAEoBRIYChBvcHRpb25hbF9pbnQzMl80GAQgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMi9QIKI1Rlc3RWZXJpZnlNb3N0bHlJbnQzMkJpZ0ZpZWxkTnVtYmVyEhkKEW9wdGlvbmFsX2ludDY0XzMwGB4gASgDEhsKEm9wdGlvbmFsX2ludDMyXzMwMBisAiABKAUSGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhgKEG9wdGlvbmFsX2ludDMyXzMYAyABKAUSGAoQb3B0aW9uYWxfaW50MzJfNBgEIAEoBRIZChFvcHRpb25hbF9pbnQzMl82Mxg/IAEoBRIZChFvcHRpb25hbF9pbnQzMl82NBhAIAEoBRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIoYBChZUZXN0VmVyaWZ5VWludDMyU2ltcGxlEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8yGAIgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82Mxg/IAEoDRIaChJvcHRpb25hbF91aW50MzJfNjQYQCABKA0i+gEKEFRlc3RWZXJpZnlVaW50MzISGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGQoRb3B0aW9uYWxfdWludDMyXzIYAiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzYzGD8gASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NBhAIAEoDRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIvoBChNUZXN0VmVyaWZ5T25lVWludDMyEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyKhAgogVGVzdFZlcmlmeU9uZUludDMyQmlnRmllbGROdW1iZXISGQoRb3B0aW9uYWxfaW50MzJfNjUYQSABKAUSGAoQb3B0aW9uYWxfaW50NjRfMRgBIAEoAxIYChBvcHRpb25hbF9pbnQ2NF8yGAIgASgDEhkKEW9wdGlvbmFsX2ludDY0XzYzGD8gASgDEhkKEW9wdGlvbmFsX2ludDY0XzY0GEAgASgDEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMivAIKHVRlc3RWZXJpZnlJbnQzMkJpZ0ZpZWxkTnVtYmVyEhwKE29wdGlvbmFsX2ludDMyXzEwMDAY6AcgASgFEhkKEW9wdGlvbmFsX2ludDMyXzY1GEEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzEYASABKAUSGAoQb3B0aW9uYWxfaW50MzJfMhgCIAEoBRIZChFvcHRpb25hbF9pbnQzMl82Mxg/IAEoBRIZChFvcHRpb25hbF9pbnQzMl82NBhAIAEoBRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIsMCCh5UZXN0VmVyaWZ5VWludDMyQmlnRmllbGROdW1iZXISHQoUb3B0aW9uYWxfdWludDMyXzEwMDAY6AcgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NRhBIAEoDRIZChFvcHRpb25hbF91aW50MzJfMRgBIAEoDRIZChFvcHRpb25hbF91aW50MzJfMhgCIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjMYPyABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY0GEAgASgNEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMiiAQKHlRlc3RWZXJpZnlCaWdGaWVsZE51bWJlclVpbnQzMhJRCg9vcHRpb25hbF9uZXN0ZWQYASABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0VmVyaWZ5QmlnRmllbGROdW1iZXJVaW50MzIuTmVzdGVkGpIDCgZOZXN0ZWQSHQoUb3B0aW9uYWxfdWludDMyXzUwMDAYiCcgASgNEh0KFG9wdGlvbmFsX3VpbnQzMl8xMDAwGOgHIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjYYQiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY1GEEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8yGAIgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82Mxg/IAEoDRIaChJvcHRpb25hbF91aW50MzJfNjQYQCABKA0SUQoPb3B0aW9uYWxfbmVzdGVkGAkgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdFZlcmlmeUJpZ0ZpZWxkTnVtYmVyVWludDMyLk5lc3RlZBJRCg9yZXBlYXRlZF9uZXN0ZWQYCiADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0VmVyaWZ5QmlnRmllbGROdW1iZXJVaW50MzIuTmVzdGVkIokjCg9FbnVtUGFyc2VUZXN0ZXISUwodb3B0aW9uYWxfc2VxX3NtYWxsXzBfbG93ZmllbGQYASABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElQKHW9wdGlvbmFsX3NlcV9zbWFsbF8wX21pZGZpZWxkGOkHIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVAocb3B0aW9uYWxfc2VxX3NtYWxsXzBfaGlmaWVsZBjBhD0gASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJTCh1yZXBlYXRlZF9zZXFfc21hbGxfMF9sb3dmaWVsZBgCIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVAodcmVwZWF0ZWRfc2VxX3NtYWxsXzBfbWlkZmllbGQY6gcgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJUChxyZXBlYXRlZF9zZXFfc21hbGxfMF9oaWZpZWxkGMKEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElUKG3BhY2tlZF9zZXFfc21hbGxfMF9sb3dmaWVsZBgDIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDBCAhABElYKG3BhY2tlZF9zZXFfc21hbGxfMF9taWRmaWVsZBjrByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwQgIQARJWChpwYWNrZWRfc2VxX3NtYWxsXzBfaGlmaWVsZBjDhD0gAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMEICEAESUwodb3B0aW9uYWxfc2VxX3NtYWxsXzFfbG93ZmllbGQYBCABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElQKHW9wdGlvbmFsX3NlcV9zbWFsbF8xX21pZGZpZWxkGOwHIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVAocb3B0aW9uYWxfc2VxX3NtYWxsXzFfaGlmaWVsZBjEhD0gASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJTCh1yZXBlYXRlZF9zZXFfc21hbGxfMV9sb3dmaWVsZBgFIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVAodcmVwZWF0ZWRfc2VxX3NtYWxsXzFfbWlkZmllbGQY7QcgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJUChxyZXBlYXRlZF9zZXFfc21hbGxfMV9oaWZpZWxkGMWEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElUKG3BhY2tlZF9zZXFfc21hbGxfMV9sb3dmaWVsZBgGIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDFCAhABElYKG3BhY2tlZF9zZXFfc21hbGxfMV9taWRmaWVsZBjuByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxQgIQARJWChpwYWNrZWRfc2VxX3NtYWxsXzFfaGlmaWVsZBjGhD0gAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMUICEAESUAobb3B0aW9uYWxfc2VxX2xhcmdlX2xvd2ZpZWxkGAcgASgOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElEKG29wdGlvbmFsX3NlcV9sYXJnZV9taWRmaWVsZBjvByABKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUQoab3B0aW9uYWxfc2VxX2xhcmdlX2hpZmllbGQYx4Q9IAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJQChtyZXBlYXRlZF9zZXFfbGFyZ2VfbG93ZmllbGQYCCADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUQobcmVwZWF0ZWRfc2VxX2xhcmdlX21pZGZpZWxkGPAHIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJRChpyZXBlYXRlZF9zZXFfbGFyZ2VfaGlmaWVsZBjIhD0gAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElIKGXBhY2tlZF9zZXFfbGFyZ2VfbG93ZmllbGQYCSADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2VCAhABElMKGXBhY2tlZF9zZXFfbGFyZ2VfbWlkZmllbGQY8QcgAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlQgIQARJTChhwYWNrZWRfc2VxX2xhcmdlX2hpZmllbGQYyYQ9IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZUICEAESUQobb3B0aW9uYWxfYXJiaXRyYXJ5X2xvd2ZpZWxkGAogASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeRJSChtvcHRpb25hbF9hcmJpdHJhcnlfbWlkZmllbGQY8gcgASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeRJSChpvcHRpb25hbF9hcmJpdHJhcnlfaGlmaWVsZBjKhD0gASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeRJRChtyZXBlYXRlZF9hcmJpdHJhcnlfbG93ZmllbGQYCyADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKG3JlcGVhdGVkX2FyYml0cmFyeV9taWRmaWVsZBjzByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKGnJlcGVhdGVkX2FyYml0cmFyeV9oaWZpZWxkGMuEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElMKGXBhY2tlZF9hcmJpdHJhcnlfbG93ZmllbGQYDCADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5QgIQARJUChlwYWNrZWRfYXJiaXRyYXJ5X21pZGZpZWxkGPQHIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnlCAhABElQKGHBhY2tlZF9hcmJpdHJhcnlfaGlmaWVsZBjMhD0gAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeUICEAESEwoLb3RoZXJfZmllbGQYYyABKAUiSgoJU2VxU21hbGwwEhcKE1NFUV9TTUFMTF8wX0RFRkFVTFQQABIRCg1TRVFfU01BTExfMF8xEAESEQoNU0VRX1NNQUxMXzBfMhACIkoKCVNlcVNtYWxsMRIXChNTRVFfU01BTExfMV9ERUZBVUxUEAESEQoNU0VRX1NNQUxMXzFfMhACEhEKDVNFUV9TTUFMTF8xXzMQAyKEBQoIU2VxTGFyZ2USHgoRU0VRX0xBUkdFX0RFRkFVTFQQ////////////ARIPCgtTRVFfTEFSR0VfMBAAEg8KC1NFUV9MQVJHRV8xEAESDwoLU0VRX0xBUkdFXzIQAhIPCgtTRVFfTEFSR0VfMxADEg8KC1NFUV9MQVJHRV80EAQSDwoLU0VRX0xBUkdFXzUQBRIPCgtTRVFfTEFSR0VfNhAGEg8KC1NFUV9MQVJHRV83EAcSDwoLU0VRX0xBUkdFXzgQCBIPCgtTRVFfTEFSR0VfORAJEhAKDFNFUV9MQVJHRV8xMBAKEhAKDFNFUV9MQVJHRV8xMRALEhAKDFNFUV9MQVJHRV8xMhAMEhAKDFNFUV9MQVJHRV8xMxANEhAKDFNFUV9MQVJHRV8xNBAOEhAKDFNFUV9MQVJHRV8xNRAPEhAKDFNFUV9MQVJHRV8xNhAQEhAKDFNFUV9MQVJHRV8xNxAREhAKDFNFUV9MQVJHRV8xOBASEhAKDFNFUV9MQVJHRV8xORATEhAKDFNFUV9MQVJHRV8yMBAUEhAKDFNFUV9MQVJHRV8yMRAVEhAKDFNFUV9MQVJHRV8yMhAWEhAKDFNFUV9MQVJHRV8yMxAXEhAKDFNFUV9MQVJHRV8yNBAYEhAKDFNFUV9MQVJHRV8yNRAZEhAKDFNFUV9MQVJHRV8yNhAaEhAKDFNFUV9MQVJHRV8yNxAbEhAKDFNFUV9MQVJHRV8yOBAcEhAKDFNFUV9MQVJHRV8yORAdEhAKDFNFUV9MQVJHRV8zMBAeEhAKDFNFUV9MQVJHRV8zMRAfEhAKDFNFUV9MQVJHRV8zMhAgEhAKDFNFUV9MQVJHRV8zMxAhIp0BCglBcmJpdHJhcnkSHgoRQVJCSVRSQVJZX0RFRkFVTFQQjb74////////ARIYCgtBUkJJVFJBUllfMRCF//////////8BEhAKC0FSQklUUkFSWV8yENUBEhEKC0FSQklUUkFSWV8zEN2BDRIaCg1BUkJJVFJBUllfTUlOEICAgID4/////wESFQoNQVJCSVRSQVJZX01BWBD/////ByoKCICJehCAgICAAjKIAQoWb3B0aW9uYWxfYXJiaXRyYXJ5X2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3RlchiAiXogASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeVIUb3B0aW9uYWxBcmJpdHJhcnlFeHQyiAEKFnJlcGVhdGVkX2FyYml0cmFyeV9leHQSIi5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIYgYl6IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnlSFHJlcGVhdGVkQXJiaXRyYXJ5RXh0MogBChRwYWNrZWRfYXJiaXRyYXJ5X2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3RlchiCiXogAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeUICEAFSEnBhY2tlZEFyYml0cmFyeUV4dCLUBAoPQm9vbFBhcnNlVGVzdGVyEh4KFm9wdGlvbmFsX2Jvb2xfbG93ZmllbGQYASABKAgSHwoWb3B0aW9uYWxfYm9vbF9taWRmaWVsZBjpByABKAgSHwoVb3B0aW9uYWxfYm9vbF9oaWZpZWxkGMGEPSABKAgSHgoWcmVwZWF0ZWRfYm9vbF9sb3dmaWVsZBgCIAMoCBIfChZyZXBlYXRlZF9ib29sX21pZGZpZWxkGOoHIAMoCBIfChVyZXBlYXRlZF9ib29sX2hpZmllbGQYwoQ9IAMoCBIgChRwYWNrZWRfYm9vbF9sb3dmaWVsZBgDIAMoCEICEAESIQoUcGFja2VkX2Jvb2xfbWlkZmllbGQY6wcgAygIQgIQARIhChNwYWNrZWRfYm9vbF9oaWZpZWxkGMOEPSADKAhCAhABEhMKC290aGVyX2ZpZWxkGGMgASgFKgoIgIl6EICAgIACMlAKEW9wdGlvbmFsX2Jvb2xfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuQm9vbFBhcnNlVGVzdGVyGICJeiABKAhSD29wdGlvbmFsQm9vbEV4dDJQChFyZXBlYXRlZF9ib29sX2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkJvb2xQYXJzZVRlc3RlchiBiXogAygIUg9yZXBlYXRlZEJvb2xFeHQyUAoPcGFja2VkX2Jvb2xfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuQm9vbFBhcnNlVGVzdGVyGIKJeiADKAhCAhABUg1wYWNrZWRCb29sRXh0IucEChBJbnQzMlBhcnNlVGVzdGVyEh8KF29wdGlvbmFsX2ludDMyX2xvd2ZpZWxkGAEgASgFEiAKF29wdGlvbmFsX2ludDMyX21pZGZpZWxkGOkHIAEoBRIgChZvcHRpb25hbF9pbnQzMl9oaWZpZWxkGMGEPSABKAUSHwoXcmVwZWF0ZWRfaW50MzJfbG93ZmllbGQYAiADKAUSIAoXcmVwZWF0ZWRfaW50MzJfbWlkZmllbGQY6gcgAygFEiAKFnJlcGVhdGVkX2ludDMyX2hpZmllbGQYwoQ9IAMoBRIhChVwYWNrZWRfaW50MzJfbG93ZmllbGQYAyADKAVCAhABEiIKFXBhY2tlZF9pbnQzMl9taWRmaWVsZBjrByADKAVCAhABEiIKFHBhY2tlZF9pbnQzMl9oaWZpZWxkGMOEPSADKAVCAhABEhMKC290aGVyX2ZpZWxkGGMgASgFKgoIgIl6EICAgIACMlMKEm9wdGlvbmFsX2ludDMyX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDMyUGFyc2VUZXN0ZXIYgIl6IAEoBVIQb3B0aW9uYWxJbnQzMkV4dDJTChJyZXBlYXRlZF9pbnQzMl9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5JbnQzMlBhcnNlVGVzdGVyGIGJeiADKAVSEHJlcGVhdGVkSW50MzJFeHQyUwoQcGFja2VkX2ludDMyX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDMyUGFyc2VUZXN0ZXIYgol6IAMoBUICEAFSDnBhY2tlZEludDMyRXh0IucEChBJbnQ2NFBhcnNlVGVzdGVyEh8KF29wdGlvbmFsX2ludDY0X2xvd2ZpZWxkGAEgASgDEiAKF29wdGlvbmFsX2ludDY0X21pZGZpZWxkGOkHIAEoAxIgChZvcHRpb25hbF9pbnQ2NF9oaWZpZWxkGMGEPSABKAMSHwoXcmVwZWF0ZWRfaW50NjRfbG93ZmllbGQYAiADKAMSIAoXcmVwZWF0ZWRfaW50NjRfbWlkZmllbGQY6gcgAygDEiAKFnJlcGVhdGVkX2ludDY0X2hpZmllbGQYwoQ9IAMoAxIhChVwYWNrZWRfaW50NjRfbG93ZmllbGQYAyADKANCAhABEiIKFXBhY2tlZF9pbnQ2NF9taWRmaWVsZBjrByADKANCAhABEiIKFHBhY2tlZF9pbnQ2NF9oaWZpZWxkGMOEPSADKANCAhABEhMKC290aGVyX2ZpZWxkGGMgASgFKgoIgIl6EICAgIACMlMKEm9wdGlvbmFsX2ludDY0X2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDY0UGFyc2VUZXN0ZXIYgIl6IAEoA1IQb3B0aW9uYWxJbnQ2NEV4dDJTChJyZXBlYXRlZF9pbnQ2NF9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5JbnQ2NFBhcnNlVGVzdGVyGIGJeiADKANSEHJlcGVhdGVkSW50NjRFeHQyUwoQcGFja2VkX2ludDY0X2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDY0UGFyc2VUZXN0ZXIYgol6IAMoA0ICEAFSDnBhY2tlZEludDY0RXh0IowBCh9JbmxpbmVkU3RyaW5nSWR4UmVncmVzc2lvblByb3RvEgwKBHN0cjEYASABKAkSPwoDc3ViGAIgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuSW5saW5lZFN0cmluZ0lkeFJlZ3Jlc3Npb25Qcm90bxIMCgRzdHIyGAMgASgJEgwKBHN0cjMYBCABKAwinwMKEVN0cmluZ1BhcnNlVGVzdGVyEiAKGG9wdGlvbmFsX3N0cmluZ19sb3dmaWVsZBgBIAEoCRIhChhvcHRpb25hbF9zdHJpbmdfbWlkZmllbGQY6QcgASgJEiEKF29wdGlvbmFsX3N0cmluZ19oaWZpZWxkGMGEPSABKAkSIAoYcmVwZWF0ZWRfc3RyaW5nX2xvd2ZpZWxkGAIgAygJEiEKGHJlcGVhdGVkX3N0cmluZ19taWRmaWVsZBjqByADKAkSIQoXcmVwZWF0ZWRfc3RyaW5nX2hpZmllbGQYwoQ9IAMoCSoKCICJehCAgICAAjJWChNvcHRpb25hbF9zdHJpbmdfZXh0EiQucHJvdG9idWZfdW5pdHRlc3QuU3RyaW5nUGFyc2VUZXN0ZXIYgIl6IAEoCVIRb3B0aW9uYWxTdHJpbmdFeHQyVgoTcmVwZWF0ZWRfc3RyaW5nX2V4dBIkLnByb3RvYnVmX3VuaXR0ZXN0LlN0cmluZ1BhcnNlVGVzdGVyGIGJeiADKAlSEXJlcGVhdGVkU3RyaW5nRXh0IjMKDUJhZEZpZWxkTmFtZXMSFQoNT3B0aW9uYWxJbnQzMhgBIAEoBRILCgNmb3IYAiABKAUidQoaVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb24SKQohb3B0aW9uYWxfdW5yZWRhY3RlZF9uZXN0ZWRfc3RyaW5nGAEgASgJEiwKH29wdGlvbmFsX3JlZGFjdGVkX25lc3RlZF9zdHJpbmcYAiABKAlCA4ABASKpBgoOUmVkYWN0ZWRGaWVsZHMSJQoYb3B0aW9uYWxfcmVkYWN0ZWRfc3RyaW5nGAEgASgJQgOAAQESIgoab3B0aW9uYWxfdW5yZWRhY3RlZF9zdHJpbmcYAiABKAkSJQoYcmVwZWF0ZWRfcmVkYWN0ZWRfc3RyaW5nGAMgAygJQgOAAQESIgoacmVwZWF0ZWRfdW5yZWRhY3RlZF9zdHJpbmcYBCADKAkSVQoZb3B0aW9uYWxfcmVkYWN0ZWRfbWVzc2FnZRgFIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlUmVkYWN0aW9uQgOAAQESUgobb3B0aW9uYWxfdW5yZWRhY3RlZF9tZXNzYWdlGAYgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb24SVQoZcmVwZWF0ZWRfcmVkYWN0ZWRfbWVzc2FnZRgHIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlUmVkYWN0aW9uQgOAAQESUgobcmVwZWF0ZWRfdW5yZWRhY3RlZF9tZXNzYWdlGAggAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb24SWgoTbWFwX3JlZGFjdGVkX3N0cmluZxgJIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlJlZGFjdGVkRmllbGRzLk1hcFJlZGFjdGVkU3RyaW5nRW50cnlCA4ABARJZChVtYXBfdW5yZWRhY3RlZF9zdHJpbmcYCiADKAsyOi5wcm90b2J1Zl91bml0dGVzdC5SZWRhY3RlZEZpZWxkcy5NYXBVbnJlZGFjdGVkU3RyaW5nRW50cnkaOAoWTWFwUmVkYWN0ZWRTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjoKGE1hcFVucmVkYWN0ZWRTdHJpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIlsKCFRlc3RDb3JkEh8KE29wdGlvbmFsX2J5dGVzX2NvcmQYASABKAxCAggBEi4KG29wdGlvbmFsX2J5dGVzX2NvcmRfZGVmYXVsdBgCIAEoDDoFaGVsbG9CAggBIp4BChhUZXN0UGFja2VkRW51bVNtYWxsUmFuZ2USSAoEdmFscxgBIAMoDjI2LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFbnVtU21hbGxSYW5nZS5OZXN0ZWRFbnVtQgIQASI4CgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMimQQKEUVudW1zRm9yQmVuY2htYXJrIowBCgRGbGF0EgYKAkEwEAASBgoCQTEQARIGCgJBMhACEgYKAkEzEAMSBgoCQTQQBBIGCgJBNRAFEgYKAkE2EAYSBgoCQTcQBxIGCgJBOBAIEgYKAkE5EAkSBwoDQTEwEAoSBwoDQTExEAsSBwoDQTEyEAwSBwoDQTEzEA0SBwoDQTE0EA4SBwoDQTE1EA8ikwEKCkFsbW9zdEZsYXQSBgoCQjAQABIGCgJCMRABEgYKAkIyEAISBgoCQjMQAxIGCgJCNRAFEgYKAkI2EAYSBgoCQjcQBxIGCgJCOBAIEgYKAkI5EAkSBwoDQjExEAsSBwoDQjEyEAwSBwoDQjEzEA0SBwoDQjE0EA4SBwoDQjE1EA8SBwoDQjE3EBESBwoDQjE5EBMi3gEKBlNwYXJzZRIJCgRDNTM2EJgEEgoKBUM4Mzg3EMNBEgoKBUM5NjczEMlLEgsKBkMxMDI4NRCtUBILCgZDMTMzMTgQhmgSCwoGQzE1OTYzENt8EgwKBkMxNjQzORC3gAESDAoGQzE4MTk3EJWOARIMCgZDMTk0MzAQ5pcBEgwKBkMyMDM2MRCJnwESDAoGQzIwNzA2EOKhARIMCgZDMjEwNTAQuqQBEgwKBkMyMTkwNhCSqwESDAoGQzI3MjY1EIHVARIMCgZDMzAxMDkQnesBEgwKBkMzMTY3MBC29wEinQcKJFRlc3RNZXNzYWdlV2l0aE1hbnlSZXBlYXRlZFB0ckZpZWxkcxIZChFyZXBlYXRlZF9zdHJpbmdfMRgBIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfMhgCIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfMxgDIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNBgEIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNRgFIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNhgGIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfNxgHIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfOBgIIAMoCRIZChFyZXBlYXRlZF9zdHJpbmdfORgJIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTAYCiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzExGAsgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xMhgMIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTMYDSADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE0GA4gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xNRgPIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTYYECADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE3GBEgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xOBgSIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTkYEyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzIwGBQgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yMRgVIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjIYFiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzIzGBcgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yNBgYIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjUYGSADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI2GBogAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yNxgbIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjgYHCADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI5GB0gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18zMBgeIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMzEYHyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzMyGCAgAygJKlEKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGEg8KC0ZPUkVJR05fQkFYECAqQQoWVGVzdFJlc2VydmVkRW51bUZpZWxkcxILCgdVTktOT1dOEAAiBAgCEAIiBAgPEA8iBAgJEAsqA2JhcioDYmF6KksKFFRlc3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoERk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAiqLDwoNVmVyeUxhcmdlRW51bRIWChJFTlVNX0xBQkVMX0RFRkFVTFQQABIQCgxFTlVNX0xBQkVMXzEQARIQCgxFTlVNX0xBQkVMXzIQAhIQCgxFTlVNX0xBQkVMXzMQAxIQCgxFTlVNX0xBQkVMXzQQBBIQCgxFTlVNX0xBQkVMXzUQBRIQCgxFTlVNX0xBQkVMXzYQBhIQCgxFTlVNX0xBQkVMXzcQBxIQCgxFTlVNX0xBQkVMXzgQCBIQCgxFTlVNX0xBQkVMXzkQCRIRCg1FTlVNX0xBQkVMXzEwEAoSEQoNRU5VTV9MQUJFTF8xMRALEhEKDUVOVU1fTEFCRUxfMTIQDBIRCg1FTlVNX0xBQkVMXzEzEA0SEQoNRU5VTV9MQUJFTF8xNBAOEhEKDUVOVU1fTEFCRUxfMTUQDxIRCg1FTlVNX0xBQkVMXzE2EBASEQoNRU5VTV9MQUJFTF8xNxAREhEKDUVOVU1fTEFCRUxfMTgQEhIRCg1FTlVNX0xBQkVMXzE5EBMSEQoNRU5VTV9MQUJFTF8yMBAUEhEKDUVOVU1fTEFCRUxfMjEQFRIRCg1FTlVNX0xBQkVMXzIyEBYSEQoNRU5VTV9MQUJFTF8yMxAXEhEKDUVOVU1fTEFCRUxfMjQQGBIRCg1FTlVNX0xBQkVMXzI1EBkSEQoNRU5VTV9MQUJFTF8yNhAaEhEKDUVOVU1fTEFCRUxfMjcQGxIRCg1FTlVNX0xBQkVMXzI4EBwSEQoNRU5VTV9MQUJFTF8yORAdEhEKDUVOVU1fTEFCRUxfMzAQHhIRCg1FTlVNX0xBQkVMXzMxEB8SEQoNRU5VTV9MQUJFTF8zMhAgEhEKDUVOVU1fTEFCRUxfMzMQIRIRCg1FTlVNX0xBQkVMXzM0ECISEQoNRU5VTV9MQUJFTF8zNRAjEhEKDUVOVU1fTEFCRUxfMzYQJBIRCg1FTlVNX0xBQkVMXzM3ECUSEQoNRU5VTV9MQUJFTF8zOBAmEhEKDUVOVU1fTEFCRUxfMzkQJxIRCg1FTlVNX0xBQkVMXzQwECgSEQoNRU5VTV9MQUJFTF80MRApEhEKDUVOVU1fTEFCRUxfNDIQKhIRCg1FTlVNX0xBQkVMXzQzECsSEQoNRU5VTV9MQUJFTF80NBAsEhEKDUVOVU1fTEFCRUxfNDUQLRIRCg1FTlVNX0xBQkVMXzQ2EC4SEQoNRU5VTV9MQUJFTF80NxAvEhEKDUVOVU1fTEFCRUxfNDgQMBIRCg1FTlVNX0xBQkVMXzQ5EDESEQoNRU5VTV9MQUJFTF81MBAyEhEKDUVOVU1fTEFCRUxfNTEQMxIRCg1FTlVNX0xBQkVMXzUyEDQSEQoNRU5VTV9MQUJFTF81MxA1EhEKDUVOVU1fTEFCRUxfNTQQNhIRCg1FTlVNX0xBQkVMXzU1EDcSEQoNRU5VTV9MQUJFTF81NhA4EhEKDUVOVU1fTEFCRUxfNTcQORIRCg1FTlVNX0xBQkVMXzU4EDoSEQoNRU5VTV9MQUJFTF81ORA7EhEKDUVOVU1fTEFCRUxfNjAQPBIRCg1FTlVNX0xBQkVMXzYxED0SEQoNRU5VTV9MQUJFTF82MhA+EhEKDUVOVU1fTEFCRUxfNjMQPxIRCg1FTlVNX0xBQkVMXzY0EEASEQoNRU5VTV9MQUJFTF82NRBBEhEKDUVOVU1fTEFCRUxfNjYQQhIRCg1FTlVNX0xBQkVMXzY3EEMSEQoNRU5VTV9MQUJFTF82OBBEEhEKDUVOVU1fTEFCRUxfNjkQRRIRCg1FTlVNX0xBQkVMXzcwEEYSEQoNRU5VTV9MQUJFTF83MRBHEhEKDUVOVU1fTEFCRUxfNzIQSBIRCg1FTlVNX0xBQkVMXzczEEkSEQoNRU5VTV9MQUJFTF83NBBKEhEKDUVOVU1fTEFCRUxfNzUQSxIRCg1FTlVNX0xBQkVMXzc2EEwSEQoNRU5VTV9MQUJFTF83NxBNEhEKDUVOVU1fTEFCRUxfNzgQThIRCg1FTlVNX0xBQkVMXzc5EE8SEQoNRU5VTV9MQUJFTF84MBBQEhEKDUVOVU1fTEFCRUxfODEQURIRCg1FTlVNX0xBQkVMXzgyEFISEQoNRU5VTV9MQUJFTF84MxBTEhEKDUVOVU1fTEFCRUxfODQQVBIRCg1FTlVNX0xBQkVMXzg1EFUSEQoNRU5VTV9MQUJFTF84NhBWEhEKDUVOVU1fTEFCRUxfODcQVxIRCg1FTlVNX0xBQkVMXzg4EFgSEQoNRU5VTV9MQUJFTF84ORBZEhEKDUVOVU1fTEFCRUxfOTAQWhIRCg1FTlVNX0xBQkVMXzkxEFsSEQoNRU5VTV9MQUJFTF85MhBcEhEKDUVOVU1fTEFCRUxfOTMQXRIRCg1FTlVNX0xBQkVMXzk0EF4SEQoNRU5VTV9MQUJFTF85NRBfEhEKDUVOVU1fTEFCRUxfOTYQYBIRCg1FTlVNX0xBQkVMXzk3EGESEQoNRU5VTV9MQUJFTF85OBBiEhEKDUVOVU1fTEFCRUxfOTkQYxISCg5FTlVNX0xBQkVMXzEwMBBkMpkBCgtUZXN0U2VydmljZRJECgNGb28SHS5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXF1ZXN0Gh4ucHJvdG9idWZfdW5pdHRlc3QuRm9vUmVzcG9uc2USRAoDQmFyEh0ucHJvdG9idWZfdW5pdHRlc3QuQmFyUmVxdWVzdBoeLnByb3RvYnVmX3VuaXR0ZXN0LkJhclJlc3BvbnNlOl4KGG9wdGlvbmFsX2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAEgASgFUhZvcHRpb25hbEludDMyRXh0ZW5zaW9uOl4KGG9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAIgASgDUhZvcHRpb25hbEludDY0RXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgDIAEoDVIXb3B0aW9uYWxVaW50MzJFeHRlbnNpb246YAoZb3B0aW9uYWxfdWludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAQgASgEUhdvcHRpb25hbFVpbnQ2NEV4dGVuc2lvbjpgChlvcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYBSABKBFSF29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgGIAEoElIXb3B0aW9uYWxTaW50NjRFeHRlbnNpb246Ygoab3B0aW9uYWxfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgHIAEoB1IYb3B0aW9uYWxGaXhlZDMyRXh0ZW5zaW9uOmIKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCCABKAZSGG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbjpkChtvcHRpb25hbF9zZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgJIAEoD1IZb3B0aW9uYWxTZml4ZWQzMkV4dGVuc2lvbjpkChtvcHRpb25hbF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgKIAEoEFIZb3B0aW9uYWxTZml4ZWQ2NEV4dGVuc2lvbjpeChhvcHRpb25hbF9mbG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgLIAEoAlIWb3B0aW9uYWxGbG9hdEV4dGVuc2lvbjpgChlvcHRpb25hbF9kb3VibGVfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDCABKAFSF29wdGlvbmFsRG91YmxlRXh0ZW5zaW9uOlwKF29wdGlvbmFsX2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDSABKAhSFW9wdGlvbmFsQm9vbEV4dGVuc2lvbjpgChlvcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDiABKAlSF29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uOl4KGG9wdGlvbmFsX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGA8gASgMUhZvcHRpb25hbEJ5dGVzRXh0ZW5zaW9uOokBChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMioucHJvdG9idWZfdW5pdHRlc3QuT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb246ngEKIW9wdGlvbmFsX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBIgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqUAQoib3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBMgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VSH29wdGlvbmFsRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246mAEKIW9wdGlvbmFsX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSHm9wdGlvbmFsSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqVAQoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFSABKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uOosBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbjqPAQoeb3B0aW9uYWxfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIbb3B0aW9uYWxJbXBvcnRFbnVtRXh0ZW5zaW9uOm8KH29wdGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgYIAEoCUICCAJSHG9wdGlvbmFsU3RyaW5nUGllY2VFeHRlbnNpb246XAoXb3B0aW9uYWxfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgZIAEoCVIVb3B0aW9uYWxDb3JkRXh0ZW5zaW9uOqsBCihvcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZVIkb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOp4BCh9vcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYGyABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSHG9wdGlvbmFsTGF6eU1lc3NhZ2VFeHRlbnNpb246swEKKm9wdGlvbmFsX3VudmVyaWZpZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBwgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAngBUiZvcHRpb25hbFVudmVyaWZpZWRMYXp5TWVzc2FnZUV4dGVuc2lvbjpeChhyZXBlYXRlZF9pbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgfIAMoBVIWcmVwZWF0ZWRJbnQzMkV4dGVuc2lvbjpeChhyZXBlYXRlZF9pbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxggIAMoA1IWcmVwZWF0ZWRJbnQ2NEV4dGVuc2lvbjpgChlyZXBlYXRlZF91aW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYISADKA1SF3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uOmAKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgiIAMoBFIXcmVwZWF0ZWRVaW50NjRFeHRlbnNpb246YAoZcmVwZWF0ZWRfc2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCMgAygRUhdyZXBlYXRlZFNpbnQzMkV4dGVuc2lvbjpgChlyZXBlYXRlZF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJCADKBJSF3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uOmIKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJSADKAdSGHJlcGVhdGVkRml4ZWQzMkV4dGVuc2lvbjpiChpyZXBlYXRlZF9maXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCYgAygGUhhyZXBlYXRlZEZpeGVkNjRFeHRlbnNpb246ZAobcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA9SGXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb246ZAobcmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBBSGXJlcGVhdGVkU2ZpeGVkNjRFeHRlbnNpb246XgoYcmVwZWF0ZWRfZmxvYXRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKSADKAJSFnJlcGVhdGVkRmxvYXRFeHRlbnNpb246YAoZcmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCogAygBUhdyZXBlYXRlZERvdWJsZUV4dGVuc2lvbjpcChdyZXBlYXRlZF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCsgAygIUhVyZXBlYXRlZEJvb2xFeHRlbnNpb246YAoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCwgAygJUhdyZXBlYXRlZFN0cmluZ0V4dGVuc2lvbjpeChhyZXBlYXRlZF9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgtIAMoDFIWcmVwZWF0ZWRCeXRlc0V4dGVuc2lvbjqJAQoXcmVwZWF0ZWRncm91cF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxguIAMoCjIqLnByb3RvYnVmX3VuaXR0ZXN0LlJlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uUhZyZXBlYXRlZGdyb3VwRXh0ZW5zaW9uOp4BCiFyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUh5yZXBlYXRlZE5lc3RlZE1lc3NhZ2VFeHRlbnNpb246lAEKInJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgxIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlUh9yZXBlYXRlZEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOpgBCiFyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlUh5yZXBlYXRlZEltcG9ydE1lc3NhZ2VFeHRlbnNpb246lQEKHnJlcGVhdGVkX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDMgAygOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SG3JlcGVhdGVkTmVzdGVkRW51bUV4dGVuc2lvbjqLAQofcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDQgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1SHHJlcGVhdGVkRm9yZWlnbkVudW1FeHRlbnNpb246jwEKHnJlcGVhdGVkX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1SG3JlcGVhdGVkSW1wb3J0RW51bUV4dGVuc2lvbjpvCh9yZXBlYXRlZF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNiADKAlCAggCUhxyZXBlYXRlZFN0cmluZ1BpZWNlRXh0ZW5zaW9uOlwKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNyADKAlSFXJlcGVhdGVkQ29yZEV4dGVuc2lvbjqeAQofcmVwZWF0ZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDkgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxyZXBlYXRlZExhenlNZXNzYWdlRXh0ZW5zaW9uOmAKF2RlZmF1bHRfaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYPSABKAU6AjQxUhVkZWZhdWx0SW50MzJFeHRlbnNpb246YAoXZGVmYXVsdF9pbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg+IAEoAzoCNDJSFWRlZmF1bHRJbnQ2NEV4dGVuc2lvbjpiChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDNSFmRlZmF1bHRVaW50MzJFeHRlbnNpb246YgoYZGVmYXVsdF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQCABKAQ6AjQ0UhZkZWZhdWx0VWludDY0RXh0ZW5zaW9uOmMKGGRlZmF1bHRfc2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDVSFmRlZmF1bHRTaW50MzJFeHRlbnNpb246YgoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2UhZkZWZhdWx0U2ludDY0RXh0ZW5zaW9uOmQKGWRlZmF1bHRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhDIAEoBzoCNDdSF2RlZmF1bHRGaXhlZDMyRXh0ZW5zaW9uOmQKGWRlZmF1bHRfZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhEIAEoBjoCNDhSF2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uOmYKGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYRSABKA86AjQ5UhhkZWZhdWx0U2ZpeGVkMzJFeHRlbnNpb246ZwoaZGVmYXVsdF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhGIAEoEDoDLTUwUhhkZWZhdWx0U2ZpeGVkNjRFeHRlbnNpb246YgoXZGVmYXVsdF9mbG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNVIVZGVmYXVsdEZsb2F0RXh0ZW5zaW9uOmUKGGRlZmF1bHRfZG91YmxlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEggASgBOgU1MjAwMFIWZGVmYXVsdERvdWJsZUV4dGVuc2lvbjpgChZkZWZhdWx0X2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSSABKAg6BHRydWVSFGRlZmF1bHRCb29sRXh0ZW5zaW9uOmUKGGRlZmF1bHRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsb1IWZGVmYXVsdFN0cmluZ0V4dGVuc2lvbjpjChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEsgASgMOgV3b3JsZFIVZGVmYXVsdEJ5dGVzRXh0ZW5zaW9uOpgBCh1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFEgASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIaZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb246lgEKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFIgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW06C0ZPUkVJR05fQkFSUhtkZWZhdWx0Rm9yZWlnbkVudW1FeHRlbnNpb246mQEKHWRlZmF1bHRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bToKSU1QT1JUX0JBUlIaZGVmYXVsdEltcG9ydEVudW1FeHRlbnNpb246cgoeZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYVCABKAk6A2FiY0ICCAJSG2RlZmF1bHRTdHJpbmdQaWVjZUV4dGVuc2lvbjpfChZkZWZhdWx0X2NvcmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYVSABKAk6AzEyM1IUZGVmYXVsdENvcmRFeHRlbnNpb246WgoWb25lb2ZfdWludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGG8gASgNUhRvbmVvZlVpbnQzMkV4dGVuc2lvbjqYAQoeb25lb2ZfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYcCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIbb25lb2ZOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOloKFm9uZW9mX3N0cmluZ19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhxIAEoCVIUb25lb2ZTdHJpbmdFeHRlbnNpb246WAoVb25lb2ZfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYciABKAxSE29uZW9mQnl0ZXNFeHRlbnNpb246VQoTbXlfZXh0ZW5zaW9uX3N0cmluZxIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCVIRbXlFeHRlbnNpb25TdHJpbmc6TwoQbXlfZXh0ZW5zaW9uX2ludBIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgFIAEoBVIObXlFeHRlbnNpb25JbnQ6YQoWcGFja2VkX2ludDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAVIUcGFja2VkSW50MzJFeHRlbnNpb246YQoWcGFja2VkX2ludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAVIUcGFja2VkSW50NjRFeHRlbnNpb246YwoXcGFja2VkX3VpbnQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhcIAMoDUICEAFSFXBhY2tlZFVpbnQzMkV4dGVuc2lvbjpjChdwYWNrZWRfdWludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAVIVcGFja2VkVWludDY0RXh0ZW5zaW9uOmMKF3BhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhABUhVwYWNrZWRTaW50MzJFeHRlbnNpb246YwoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhfIAMoEkICEAFSFXBhY2tlZFNpbnQ2NEV4dGVuc2lvbjplChhwYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEAFSFnBhY2tlZEZpeGVkMzJFeHRlbnNpb246ZQoYcGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhABUhZwYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOmcKGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhiIAMoD0ICEAFSF3BhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOmcKGXBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAFSF3BhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmEKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAFSFHBhY2tlZEZsb2F0RXh0ZW5zaW9uOmMKF3BhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZSADKAFCAhABUhVwYWNrZWREb3VibGVFeHRlbnNpb246XwoVcGFja2VkX2Jvb2xfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABUhNwYWNrZWRCb29sRXh0ZW5zaW9uOn8KFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABUhNwYWNrZWRFbnVtRXh0ZW5zaW9uOmcKGHVucGFja2VkX2ludDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhAAUhZ1bnBhY2tlZEludDMyRXh0ZW5zaW9uOmcKGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhAAUhZ1bnBhY2tlZEludDY0RXh0ZW5zaW9uOmkKGXVucGFja2VkX3VpbnQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAFIXdW5wYWNrZWRVaW50MzJFeHRlbnNpb246aQoZdW5wYWNrZWRfdWludDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhAAUhd1bnBhY2tlZFVpbnQ2NEV4dGVuc2lvbjppChl1bnBhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEABSF3VucGFja2VkU2ludDMyRXh0ZW5zaW9uOmkKGXVucGFja2VkX3NpbnQ2NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAFIXdW5wYWNrZWRTaW50NjRFeHRlbnNpb246awoadW5wYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAFIYdW5wYWNrZWRGaXhlZDMyRXh0ZW5zaW9uOmsKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEABSGHVucGFja2VkRml4ZWQ2NEV4dGVuc2lvbjptCht1bnBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAFIZdW5wYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjptCht1bnBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAFIZdW5wYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbjpnChh1bnBhY2tlZF9mbG9hdF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGQgAygCQgIQAFIWdW5wYWNrZWRGbG9hdEV4dGVuc2lvbjppChl1bnBhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEABSF3VucGFja2VkRG91YmxlRXh0ZW5zaW9uOmUKF3VucGFja2VkX2Jvb2xfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEABSFXVucGFja2VkQm9vbEV4dGVuc2lvbjqFAQoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAAUhV1bnBhY2tlZEVudW1FeHRlbnNpb246cgoOdGVzdF9hbGxfdHlwZXMSJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0SHVnZUZpZWxkTnVtYmVycxjgqv//ASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNSDHRlc3RBbGxUeXBlczp9CiV0ZXN0X2V4dGVuc2lvbl9pbnNpZGVfdGFibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlGAUgASgFUiF0ZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGVFeHRlbnNpb246qQEKBWlubmVyElgucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uT3V0ZXIuTGF5ZXIxT3B0aW9uYWxHcm91cC5MYXllcjJSZXBlYXRlZEdyb3VwGAMgASgLMjkucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uSW5uZXJFeHRlbnNpb25SBWlubmVyQh1CDVVuaXR0ZXN0UHJvdG9IAYABAYgBAZABAfgBAQ", [fileDesc_google_protobuf_unittest_import]); + fileDesc("Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0ItoaCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSRAoNb3B0aW9uYWxncm91cBgQIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwEk4KF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJQChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWwogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICeAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSRAoNcmVwZWF0ZWRncm91cBguIAMoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwEk4KF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJMChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRIZCg1kZWZhdWx0X2ludDMyGD0gASgFOgI0MRIZCg1kZWZhdWx0X2ludDY0GD4gASgDOgI0MhIaCg5kZWZhdWx0X3VpbnQzMhg/IAEoDToCNDMSGgoOZGVmYXVsdF91aW50NjQYQCABKAQ6AjQ0EhsKDmRlZmF1bHRfc2ludDMyGEEgASgROgMtNDUSGgoOZGVmYXVsdF9zaW50NjQYQiABKBI6AjQ2EhsKD2RlZmF1bHRfZml4ZWQzMhhDIAEoBzoCNDcSGwoPZGVmYXVsdF9maXhlZDY0GEQgASgGOgI0OBIcChBkZWZhdWx0X3NmaXhlZDMyGEUgASgPOgI0ORIdChBkZWZhdWx0X3NmaXhlZDY0GEYgASgQOgMtNTASGwoNZGVmYXVsdF9mbG9hdBhHIAEoAjoENTEuNRIdCg5kZWZhdWx0X2RvdWJsZRhIIAEoAToFNTIwMDASGgoMZGVmYXVsdF9ib29sGEkgASgIOgR0cnVlEh0KDmRlZmF1bHRfc3RyaW5nGEogASgJOgVoZWxsbxIcCg1kZWZhdWx0X2J5dGVzGEsgASgMOgV3b3JsZBJMChNkZWZhdWx0X25lc3RlZF9lbnVtGFEgASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUhJJChRkZWZhdWx0X2ZvcmVpZ25fZW51bRhSIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUhJNChNkZWZhdWx0X2ltcG9ydF9lbnVtGFMgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW06CklNUE9SVF9CQVISJQoUZGVmYXVsdF9zdHJpbmdfcGllY2UYVCABKAk6A2FiY0ICCAISHQoMZGVmYXVsdF9jb3JkGFUgASgJOgMxMjNCAggBEhYKDG9uZW9mX3VpbnQzMhhvIAEoDUgAEk0KFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAEhgKCm9uZW9mX2NvcmQYcyABKAlCAggBSAASIAoSb25lb2Zfc3RyaW5nX3BpZWNlGHQgASgJQgIIAkgAElYKGW9uZW9mX2xhenlfbmVzdGVkX21lc3NhZ2UYdSABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFIABobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGhoKDU9wdGlvbmFsR3JvdXASCQoBYRgRIAEoBRoaCg1SZXBlYXRlZEdyb3VwEgkKAWEYLyABKAUiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCK0AgoSTmVzdGVkVGVzdEFsbFR5cGVzEjQKBWNoaWxkGAEgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEjAKB3BheWxvYWQYAiABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSPQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXMSPQoKbGF6eV9jaGlsZBgEIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlc0ICKAESOAoLZWFnZXJfY2hpbGQYBSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigAIp0CChRUZXN0RGVwcmVjYXRlZEZpZWxkcxIcChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYARImChpkZXByZWNhdGVkX3JlcGVhdGVkX3N0cmluZxgEIAMoCUICGAESTQoSZGVwcmVjYXRlZF9tZXNzYWdlGAMgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAhgBEicKGWRlcHJlY2F0ZWRfaW50MzJfaW5fb25lb2YYAiABKAVCAhgBSAASNwoGbmVzdGVkGAUgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdERlcHJlY2F0ZWRGaWVsZHNCDgoMb25lb2ZfZmllbGRzIhsKFVRlc3REZXByZWNhdGVkTWVzc2FnZToCGAEiJgoORm9yZWlnbk1lc3NhZ2USCQoBYxgBIAEoBRIJCgFkGAIgASgFIjAKElRlc3RSZXNlcnZlZEZpZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiHQoRVGVzdEFsbEV4dGVuc2lvbnMqCAgBEICAgIACIiQKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgkKAWEYESABKAUiJAoXUmVwZWF0ZWRHcm91cF9leHRlbnNpb24SCQoBYRgvIAEoBSK+AQocVGVzdE1peGVkRmllbGRzQW5kRXh0ZW5zaW9ucxIJCgFhGAEgASgFEgkKAWIYAyADKAcqBAgCEAMqBAgEEAUyPQoBYxIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNaXhlZEZpZWxkc0FuZEV4dGVuc2lvbnMYAiABKAVSAWMyPQoBZBIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNaXhlZEZpZWxkc0FuZEV4dGVuc2lvbnMYBCADKAdSAWQitQEKCVRlc3RHcm91cBJBCg1vcHRpb25hbGdyb3VwGBAgASgKMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEdyb3VwLk9wdGlvbmFsR3JvdXASPQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0aJgoNT3B0aW9uYWxHcm91cBIJCgFhGBEgASgFEgoKAnp6GFkgASgFIh4KElRlc3RHcm91cEV4dGVuc2lvbioICAEQgICAgAIiiwQKE1Rlc3ROZXN0ZWRFeHRlbnNpb24aJAoXT3B0aW9uYWxHcm91cF9leHRlbnNpb24SCQoBYRgRIAEoBTI/CgR0ZXN0EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6gcgASgJOgR0ZXN0UgR0ZXN0Ml0KF25lc3RlZF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6wcgASgJUhVuZXN0ZWRTdHJpbmdFeHRlbnNpb24yngEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEdyb3VwRXh0ZW5zaW9uGBAgASgKMj4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZEV4dGVuc2lvbi5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjKMAQofb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RHcm91cEV4dGVuc2lvbhgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uImwKElRlc3RDaGlsZEV4dGVuc2lvbhIJCgFhGAEgASgJEgkKAWIYAiABKAkSQAoSb3B0aW9uYWxfZXh0ZW5zaW9uGAMgASgLMiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMi1gIKFlRlc3RDaGlsZEV4dGVuc2lvbkRhdGESCQoBYRgBIAEoCRIJCgFiGAIgASgJEmEKEm9wdGlvbmFsX2V4dGVuc2lvbhgDIAEoCzJFLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RDaGlsZEV4dGVuc2lvbkRhdGEuTmVzdGVkVGVzdEFsbEV4dGVuc2lvbnNEYXRhGsIBChtOZXN0ZWRUZXN0QWxsRXh0ZW5zaW9uc0RhdGEScgoHZHluYW1pYxiAxK7DASABKAsyXS5wcm90b2J1Zl91bml0dGVzdC5UZXN0Q2hpbGRFeHRlbnNpb25EYXRhLk5lc3RlZFRlc3RBbGxFeHRlbnNpb25zRGF0YS5OZXN0ZWREeW5hbWljRXh0ZW5zaW9ucxovChdOZXN0ZWREeW5hbWljRXh0ZW5zaW9ucxIJCgFhGAEgASgFEgkKAWIYAiABKAUiWwoYVGVzdE5lc3RlZENoaWxkRXh0ZW5zaW9uEgkKAWEYASABKAUSNAoFY2hpbGQYAiABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0Q2hpbGRFeHRlbnNpb24iYwocVGVzdE5lc3RlZENoaWxkRXh0ZW5zaW9uRGF0YRIJCgFhGAEgASgFEjgKBWNoaWxkGAIgASgLMikucHJvdG9idWZfdW5pdHRlc3QuVGVzdENoaWxkRXh0ZW5zaW9uRGF0YSJUChBUZXN0UmVxdWlyZWRFbnVtEjUKDXJlcXVpcmVkX2VudW0YASACKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRIJCgFhGAIgASgFIrMBChZUZXN0UmVxdWlyZWRFbnVtTm9NYXNrEksKDXJlcXVpcmVkX2VudW0YASACKA4yNC5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTm9NYXNrLk5lc3RlZEVudW0SCQoBYRgCIAEoBSJBCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAISBwoDQkFSEGQSEAoDQkFaEP///////////wEiswIKFVRlc3RSZXF1aXJlZEVudW1NdWx0aRJMCg9yZXF1aXJlZF9lbnVtXzQYBCACKA4yMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtTXVsdGkuTmVzdGVkRW51bRILCgNhXzMYAyABKAUSTAoPcmVxdWlyZWRfZW51bV8yGAIgAigOMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkRW51bU11bHRpLk5lc3RlZEVudW0SNwoPcmVxdWlyZWRfZW51bV8xGAEgAigOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0iOAoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhBkIsQDChdUZXN0UmVxdWlyZWROb01hc2tNdWx0aRIbChNyZXF1aXJlZF9maXhlZDMyXzgwGFAgAigHEhsKE3JlcXVpcmVkX2ZpeGVkMzJfNzAYRiACKAcSTwoQcmVxdWlyZWRfZW51bV82NBhAIAIoDjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE5vTWFza011bHRpLk5lc3RlZEVudW0STgoPcmVxdWlyZWRfZW51bV80GAQgAigOMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkuTmVzdGVkRW51bRILCgNhXzMYAyABKAUSTgoPcmVxdWlyZWRfZW51bV8yGAIgAigOMjUucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkuTmVzdGVkRW51bRI3Cg9yZXF1aXJlZF9lbnVtXzEYASACKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bSI4CgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEGQioQYKDFRlc3RSZXF1aXJlZBIJCgFhGAEgAigFEg4KBmR1bW15MhgCIAEoBRIJCgFiGAMgAigFEg4KBmR1bW15NBgEIAEoBRIOCgZkdW1teTUYBSABKAUSDgoGZHVtbXk2GAYgASgFEg4KBmR1bW15NxgHIAEoBRIOCgZkdW1teTgYCCABKAUSDgoGZHVtbXk5GAkgASgFEg8KB2R1bW15MTAYCiABKAUSDwoHZHVtbXkxMRgLIAEoBRIPCgdkdW1teTEyGAwgASgFEg8KB2R1bW15MTMYDSABKAUSDwoHZHVtbXkxNBgOIAEoBRIPCgdkdW1teTE1GA8gASgFEg8KB2R1bW15MTYYECABKAUSDwoHZHVtbXkxNxgRIAEoBRIPCgdkdW1teTE4GBIgASgFEg8KB2R1bW15MTkYEyABKAUSDwoHZHVtbXkyMBgUIAEoBRIPCgdkdW1teTIxGBUgASgFEg8KB2R1bW15MjIYFiABKAUSDwoHZHVtbXkyMxgXIAEoBRIPCgdkdW1teTI0GBggASgFEg8KB2R1bW15MjUYGSABKAUSDwoHZHVtbXkyNhgaIAEoBRIPCgdkdW1teTI3GBsgASgFEg8KB2R1bW15MjgYHCABKAUSDwoHZHVtbXkyORgdIAEoBRIPCgdkdW1teTMwGB4gASgFEg8KB2R1bW15MzEYHyABKAUSDwoHZHVtbXkzMhggIAEoBRIJCgFjGCEgAigFEjsKEG9wdGlvbmFsX2ZvcmVpZ24YIiABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZTJeCgZzaW5nbGUSJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxjoByABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRSBnNpbmdsZTJcCgVtdWx0aRIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOkHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZFIFbXVsdGki5AEKE1Rlc3RSZXF1aXJlZEZvcmVpZ24SOQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBI5ChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkEg0KBWR1bW15GAMgASgFEkgKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgEIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlc0ICKAEixgEKE1Rlc3RSZXF1aXJlZE1lc3NhZ2USOQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBI5ChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkEjkKEHJlcXVpcmVkX21lc3NhZ2UYAyACKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQiswMKGVRlc3ROZXN0ZWRSZXF1aXJlZEZvcmVpZ24SOwoFY2hpbGQYASABKAsyLC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkUmVxdWlyZWRGb3JlaWduEjcKB3BheWxvYWQYAiABKAsyJi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRGb3JlaWduEg0KBWR1bW15GAMgASgFEjoKDXJlcXVpcmVkX2VudW0YBSABKAsyIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRFbnVtEkgKFXJlcXVpcmVkX2VudW1fbm9fbWFzaxgGIAEoCzIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZEVudW1Ob01hc2sSRQoTcmVxdWlyZWRfZW51bV9tdWx0aRgHIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZEVudW1NdWx0aRJEChByZXF1aXJlZF9ub19tYXNrGAkgASgLMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkTm9NYXNrTXVsdGkiWgoRVGVzdEZvcmVpZ25OZXN0ZWQSRQoOZm9yZWlnbl9uZXN0ZWQYASABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZSISChBUZXN0RW1wdHlNZXNzYWdlIioKHlRlc3RFbXB0eU1lc3NhZ2VXaXRoRXh0ZW5zaW9ucyoICAEQgICAgAIiWQoXVGVzdFBpY2tsZU5lc3RlZE1lc3NhZ2UaPgoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBRohChNOZXN0ZWROZXN0ZWRNZXNzYWdlEgoKAmNjGAEgASgFIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoGCK8gEJQhKgoIgIAEEICAgIACIjQKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIJCgFhGAEgASgFEg0KAmJiGP///38gASgFIlUKFFRlc3RSZWN1cnNpdmVNZXNzYWdlEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVjdXJzaXZlTWVzc2FnZRIJCgFpGAIgASgFIuYDChRUZXN0TXV0dWFsUmVjdXJzaW9uQRIzCgJiYhgBIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25CEkIKCHN1Ymdyb3VwGAIgASgKMjAucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXASRAoJc3ViZ3JvdXByGAUgAygKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXBSGkAKClN1Yk1lc3NhZ2USMgoBYhgBIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25CGo0BCghTdWJHcm91cBJHCgtzdWJfbWVzc2FnZRgDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Yk1lc3NhZ2USOAoPbm90X2luX3RoaXNfc2NjGAQgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGj0KCVN1Ykdyb3VwUhIwCgdwYXlsb2FkGAYgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzImIKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9pbnQzMhgCIAEoBSLKAQoRVGVzdElzSW5pdGlhbGl6ZWQSRAoLc3ViX21lc3NhZ2UYASABKAsyLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlGm8KClN1Yk1lc3NhZ2USSgoIc3ViZ3JvdXAYASABKAoyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlLlN1Ykdyb3VwGhUKCFN1Ykdyb3VwEgkKAWkYAiACKAUiswEKElRlc3REdXBGaWVsZE51bWJlchIJCgFhGAEgASgFEjYKA2ZvbxgCIAEoCjIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REdXBGaWVsZE51bWJlci5Gb28SNgoDYmFyGAMgASgKMikucHJvdG9idWZfdW5pdHRlc3QuVGVzdER1cEZpZWxkTnVtYmVyLkJhchoQCgNGb28SCQoBYRgBIAEoBRoQCgNCYXISCQoBYRgBIAEoBSJMChBUZXN0RWFnZXJNZXNzYWdlEjgKC3N1Yl9tZXNzYWdlGAEgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzQgIoACJLCg9UZXN0TGF6eU1lc3NhZ2USOAoLc3ViX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigBIlcKF1Rlc3RMYXp5TWVzc2FnZVJlcGVhdGVkEjwKEHJlcGVhdGVkX21lc3NhZ2UYASADKAsyIi5wcm90b2J1Zl91bml0dGVzdC5UZXN0TGF6eU1lc3NhZ2UijwIKElRlc3RFYWdlck1heWJlTGF6eRI0CgttZXNzYWdlX2ZvbxgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI0CgttZXNzYWdlX2JhchgCIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJICgttZXNzYWdlX2JhehgDIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFYWdlck1heWJlTGF6eS5OZXN0ZWRNZXNzYWdlGkMKDU5lc3RlZE1lc3NhZ2USMgoGcGFja2VkGAEgASgLMiIucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZFR5cGVzIoACChhUZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMSWgoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYASABKAsyOS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMuTmVzdGVkTWVzc2FnZRqHAQoNTmVzdGVkTWVzc2FnZRIkChxuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ludDMyGAEgAygFElAKJW5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfZm9yZWlnbm1lc3NhZ2UYAiADKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZSLlAwoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSFgoOUHJpbWl0aXZlRmllbGQYASABKAUSEwoLU3RyaW5nRmllbGQYAiABKAkSMQoJRW51bUZpZWxkGAMgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SNwoMTWVzc2FnZUZpZWxkGAQgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USHAoQU3RyaW5nUGllY2VGaWVsZBgFIAEoCUICCAISFQoJQ29yZEZpZWxkGAYgASgJQgIIARIeChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFEhsKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAkSOQoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRI/ChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEiQKGFJlcGVhdGVkU3RyaW5nUGllY2VGaWVsZBgLIAMoCUICCAISHQoRUmVwZWF0ZWRDb3JkRmllbGQYDCADKAlCAggBItUBChJUZXN0RmllbGRPcmRlcmluZ3MSEQoJbXlfc3RyaW5nGAsgASgJEg4KBm15X2ludBgBIAEoAxIQCghteV9mbG9hdBhlIAEoAhJVChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRjIASABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZRonCg1OZXN0ZWRNZXNzYWdlEgoKAm9vGAIgASgDEgoKAmJiGAEgASgFKgQIAhALKgQIDBBlIrABChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMRIRCglteV9zdHJpbmcYASABKAkygQEKE3Rlc3RfZXh0X29yZGVyaW5nczESJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RmllbGRPcmRlcmluZ3MYDSABKAsyKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMVIRdGVzdEV4dE9yZGVyaW5nczEi+wIKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MyEhEKCW15X3N0cmluZxgBIAEoCRrIAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczMSEQoJbXlfc3RyaW5nGAEgASgJMpkBChN0ZXN0X2V4dF9vcmRlcmluZ3MzEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGA4gASgLMkIucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczNSEXRlc3RFeHRPcmRlcmluZ3MzMoEBChN0ZXN0X2V4dF9vcmRlcmluZ3MyEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGAwgASgLMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczJSEXRlc3RFeHRPcmRlcmluZ3MyIrYHChhUZXN0RXh0cmVtZURlZmF1bHRWYWx1ZXMSPwoNZXNjYXBlZF9ieXRlcxgBIAEoDDooXDAwMFwwMDFcMDA3XDAxMFwwMTRcblxyXHRcMDEzXFxcJ1wiXDM3NhIgCgxsYXJnZV91aW50MzIYAiABKA06CjQyOTQ5NjcyOTUSKgoMbGFyZ2VfdWludDY0GAMgASgEOhQxODQ0Njc0NDA3MzcwOTU1MTYxNRIgCgtzbWFsbF9pbnQzMhgEIAEoBToLLTIxNDc0ODM2NDcSKQoLc21hbGxfaW50NjQYBSABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA3EicKEnJlYWxseV9zbWFsbF9pbnQzMhgVIAEoBToLLTIxNDc0ODM2NDgSMAoScmVhbGx5X3NtYWxsX2ludDY0GBYgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwOBIYCgt1dGY4X3N0cmluZxgGIAEoCToD4Yi0EhUKCnplcm9fZmxvYXQYByABKAI6ATASFAoJb25lX2Zsb2F0GAggASgCOgExEhgKC3NtYWxsX2Zsb2F0GAkgASgCOgMxLjUSHgoSbmVnYXRpdmVfb25lX2Zsb2F0GAogASgCOgItMRIcCg5uZWdhdGl2ZV9mbG9hdBgLIAEoAjoELTEuNRIaCgtsYXJnZV9mbG9hdBgMIAEoAjoFMmUrMDgSJAoUc21hbGxfbmVnYXRpdmVfZmxvYXQYDSABKAI6Bi04ZS0yOBIXCgppbmZfZG91YmxlGA4gASgBOgNpbmYSHAoObmVnX2luZl9kb3VibGUYDyABKAE6BC1pbmYSFwoKbmFuX2RvdWJsZRgQIAEoAToDbmFuEhYKCWluZl9mbG9hdBgRIAEoAjoDaW5mEhsKDW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmYSFgoJbmFuX2Zsb2F0GBMgASgCOgNuYW4SKwoMY3BwX3RyaWdyYXBoGBQgASgJOhU/ID8gPz8gPz8gPz8/ID8/LyA/Py0SIAoQc3RyaW5nX3dpdGhfemVybxgXIAEoCToGaGVsAGxvEiIKD2J5dGVzX3dpdGhfemVybxgYIAEoDDoJd29yXDAwMGxkEigKFnN0cmluZ19waWVjZV93aXRoX3plcm8YGSABKAk6BGFiAGNCAggCEiAKDmNvcmRfd2l0aF96ZXJvGBogASgJOgQxMgAzQgIIARImChJyZXBsYWNlbWVudF9zdHJpbmcYGyABKAk6CiR7dW5rbm93bn0iSwoRU3BhcnNlRW51bU1lc3NhZ2USNgoLc3BhcnNlX2VudW0YASABKA4yIS5wcm90b2J1Zl91bml0dGVzdC5UZXN0U3BhcnNlRW51bSIZCglPbmVTdHJpbmcSDAoEZGF0YRgBIAEoCSIaCgpNb3JlU3RyaW5nEgwKBGRhdGEYASADKAkiGAoIT25lQnl0ZXMSDAoEZGF0YRgBIAEoDCIZCglNb3JlQnl0ZXMSDAoEZGF0YRgBIAMoDCLrAwoSTWFueU9wdGlvbmFsU3RyaW5nEgwKBHN0cjEYASABKAkSDAoEc3RyMhgCIAEoCRIMCgRzdHIzGAMgASgJEgwKBHN0cjQYBCABKAkSDAoEc3RyNRgFIAEoCRIMCgRzdHI2GAYgASgJEgwKBHN0cjcYByABKAkSDAoEc3RyOBgIIAEoCRIMCgRzdHI5GAkgASgJEg0KBXN0cjEwGAogASgJEg0KBXN0cjExGAsgASgJEg0KBXN0cjEyGAwgASgJEg0KBXN0cjEzGA0gASgJEg0KBXN0cjE0GA4gASgJEg0KBXN0cjE1GA8gASgJEg0KBXN0cjE2GBAgASgJEg0KBXN0cjE3GBEgASgJEg0KBXN0cjE4GBIgASgJEg0KBXN0cjE5GBMgASgJEg0KBXN0cjIwGBQgASgJEg0KBXN0cjIxGBUgASgJEg0KBXN0cjIyGBYgASgJEg0KBXN0cjIzGBcgASgJEg0KBXN0cjI0GBggASgJEg0KBXN0cjI1GBkgASgJEg0KBXN0cjI2GBogASgJEg0KBXN0cjI3GBsgASgJEg0KBXN0cjI4GBwgASgJEg0KBXN0cjI5GB0gASgJEg0KBXN0cjMwGB4gASgJEg0KBXN0cjMxGB8gASgJEg0KBXN0cjMyGCAgASgJIhwKDEludDMyTWVzc2FnZRIMCgRkYXRhGAEgASgFIh0KDVVpbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoDSIcCgxJbnQ2NE1lc3NhZ2USDAoEZGF0YRgBIAEoAyIdCg1VaW50NjRNZXNzYWdlEgwKBGRhdGEYASABKAQiGwoLQm9vbE1lc3NhZ2USDAoEZGF0YRgBIAEoCCLQAQoJVGVzdE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASNgoLZm9vX21lc3NhZ2UYAyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNIABI5Cghmb29ncm91cBgEIAEoCjIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZi5Gb29Hcm91cEgAGiAKCEZvb0dyb3VwEgkKAWEYBSABKAUSCQoBYhgGIAEoCUIFCgNmb28i5wEKHFRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUSDwoHZm9vX2ludBgBIAEoBRISCgpmb29fc3RyaW5nGAIgASgJEjQKC2Zvb19tZXNzYWdlGAMgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEkoKCGZvb2dyb3VwGAQgASgKMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZS5Gb29Hcm91cBogCghGb29Hcm91cBIJCgFhGAUgASgFEgkKAWIYBiABKAkirwgKClRlc3RPbmVvZjISEQoHZm9vX2ludBgBIAEoBUgAEhQKCmZvb19zdHJpbmcYAiABKAlIABIWCghmb29fY29yZBgDIAEoCUICCAFIABIeChBmb29fc3RyaW5nX3BpZWNlGAQgASgJQgIIAkgAEhMKCWZvb19ieXRlcxgFIAEoDEgAEjwKCGZvb19lbnVtGAYgASgOMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSAASQgoLZm9vX21lc3NhZ2UYByABKAsyKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VIABI6Cghmb29ncm91cBgIIAEoCjImLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuRm9vR3JvdXBIABJLChBmb29fbGF6eV9tZXNzYWdlGAsgASgLMisucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlQgIoAUgAEhwKDmZvb19ieXRlc19jb3JkGB4gASgMQgIIAUgAEhQKB2Jhcl9pbnQYDCABKAU6ATVIARIcCgpiYXJfc3RyaW5nGA0gASgJOgZTVFJJTkdIARIcCghiYXJfY29yZBgOIAEoCToEQ09SREICCAFIARImChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VCAggCSAESGgoJYmFyX2J5dGVzGBAgASgMOgVCWVRFU0gBEkEKCGJhcl9lbnVtGBEgASgOMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtOgNCQVJIARIpCh1iYXJfc3RyaW5nX3dpdGhfZW1wdHlfZGVmYXVsdBgUIAEoCToASAESKwobYmFyX2NvcmRfd2l0aF9lbXB0eV9kZWZhdWx0GBUgASgJOgBCAggBSAESMwojYmFyX3N0cmluZ19waWVjZV93aXRoX2VtcHR5X2RlZmF1bHQYFiABKAk6AEICCAJIARIoChxiYXJfYnl0ZXNfd2l0aF9lbXB0eV9kZWZhdWx0GBcgASgMOgBIARIPCgdiYXpfaW50GBIgASgFEhcKCmJhel9zdHJpbmcYEyABKAk6A0JBWhogCghGb29Hcm91cBIJCgFhGAkgASgFEgkKAWIYCiABKAkabwoNTmVzdGVkTWVzc2FnZRIPCgdtb29faW50GAEgASgDEhEKCWNvcmdlX2ludBgCIAMoBRI6CgVjaGlsZBgDIAEoCzIrLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZSInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQgUKA2Zvb0IFCgNiYXIijAIKEVRlc3RSZXF1aXJlZE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASSQoLZm9vX21lc3NhZ2UYAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSAASUgoQZm9vX2xhenlfbWVzc2FnZRgEIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZE9uZW9mLk5lc3RlZE1lc3NhZ2VCAigBSAAaKAoNTmVzdGVkTWVzc2FnZRIXCg9yZXF1aXJlZF9kb3VibGUYASACKAFCBQoDZm9vIqoDCg9UZXN0UGFja2VkVHlwZXMSGAoMcGFja2VkX2ludDMyGFogAygFQgIQARIYCgxwYWNrZWRfaW50NjQYWyADKANCAhABEhkKDXBhY2tlZF91aW50MzIYXCADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYXSADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYXyADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYZiADKAhCAhABEjcKC3BhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABIsgDChFUZXN0VW5wYWNrZWRUeXBlcxIaCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GF0gAygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGYgAygIQgIQABI5Cg11bnBhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAAIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiIiChZUZXN0VW5wYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiKZBAoVVGVzdER5bmFtaWNFeHRlbnNpb25zEhkKEHNjYWxhcl9leHRlbnNpb24Y0A8gASgHEjcKDmVudW1fZXh0ZW5zaW9uGNEPIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtElkKFmR5bmFtaWNfZW51bV9leHRlbnNpb24Y0g8gASgOMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNFbnVtVHlwZRI9ChFtZXNzYWdlX2V4dGVuc2lvbhjTDyABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJfChlkeW5hbWljX21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzI7LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGUSGwoScmVwZWF0ZWRfZXh0ZW5zaW9uGNUPIAMoCRIdChBwYWNrZWRfZXh0ZW5zaW9uGNYPIAMoEUICEAEaLAoSRHluYW1pY01lc3NhZ2VUeXBlEhYKDWR5bmFtaWNfZmllbGQYtBAgASgFIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZPTxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESJ8ChJUZXN0UmVwZWF0ZWRTdHJpbmcSGAoQcmVwZWF0ZWRfc3RyaW5nMRgBIAMoCRIYChByZXBlYXRlZF9zdHJpbmcyGAIgAygJEhgKEHJlcGVhdGVkX2J5dGVzMTEYCyADKAwSGAoQcmVwZWF0ZWRfYnl0ZXMxMhgMIAMoDCLAAQojVGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSGAoQcmVwZWF0ZWRfZml4ZWQzMhgMIAMoBxIWCg5yZXBlYXRlZF9pbnQzMhgNIAMoBRIZChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBhIXCg5yZXBlYXRlZF9pbnQ2NBj/DyADKAMSGAoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAhIZCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBCKRCgoQVGVzdFBhcnNpbmdNZXJnZRI7ChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgDIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJICg1vcHRpb25hbGdyb3VwGAogASgKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZS5PcHRpb25hbEdyb3VwEkgKDXJlcGVhdGVkZ3JvdXAYFCADKAoyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkR3JvdXAaqgQKF1JlcGVhdGVkRmllbGRzR2VuZXJhdG9yEi8KBmZpZWxkMRgBIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxIvCgZmaWVsZDIYAiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSLwoGZmllbGQzGAMgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzElIKBmdyb3VwMRgKIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxElIKBmdyb3VwMhgUIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAyEi4KBGV4dDEY6AcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEi4KBGV4dDIY6QcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGjkKBkdyb3VwMRIvCgZmaWVsZDEYCyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMaOQoGR3JvdXAyEi8KBmZpZWxkMRgVIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1PcHRpb25hbEdyb3VwEkEKGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1SZXBlYXRlZEdyb3VwEkEKGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyoJCOgHEICAgIACMmgKDG9wdGlvbmFsX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UY6AcgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzUgtvcHRpb25hbEV4dDJoCgxyZXBlYXRlZF9leHQSIy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlGOkHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc1ILcmVwZWF0ZWRFeHQiUgoSVGVzdE1lcmdlRXhjZXB0aW9uEjwKDmFsbF9leHRlbnNpb25zGAEgASgLMiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMiRAobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEiUKAWEYASABKAk6GiovIDwtIE5laXRoZXIgc2hvdWxkIHRoaXMuIlkKD1Rlc3RNZXNzYWdlU2l6ZRIKCgJtMRgBIAEoCBIKCgJtMhgCIAEoAxIKCgJtMxgDIAEoCBIKCgJtNBgEIAEoCRIKCgJtNRgFIAEoBRIKCgJtNhgGIAEoAyIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIqYBCgxUZXN0SnNvbk5hbWUSEwoLZmllbGRfbmFtZTEYASABKAUSEgoKZmllbGROYW1lMhgCIAEoBRISCgpGaWVsZE5hbWUzGAMgASgFEhQKDF9maWVsZF9uYW1lNBgEIAEoBRITCgtGSUVMRF9OQU1FNRgFIAEoBRIaCgtmaWVsZF9uYW1lNhgGIAEoBVIFQHR5cGUSEgoKZmllbGRuYW1lNxgHIAEoBSL9BQoUVGVzdEh1Z2VGaWVsZE51bWJlcnMSGgoOb3B0aW9uYWxfaW50MzIY8Pj//wEgASgFEhQKCGZpeGVkXzMyGPH4//8BIAEoBRIeCg5yZXBlYXRlZF9pbnQzMhjy+P//ASADKAVCAhAAEhwKDHBhY2tlZF9pbnQzMhjz+P//ASADKAVCAhABEjkKDW9wdGlvbmFsX2VudW0Y9Pj//wEgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SGwoPb3B0aW9uYWxfc3RyaW5nGPX4//8BIAEoCRIaCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAwSPwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJQCg1vcHRpb25hbGdyb3VwGPj4//8BIAEoCjI1LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RIdWdlRmllbGROdW1iZXJzLk9wdGlvbmFsR3JvdXASWwoRc3RyaW5nX3N0cmluZ19tYXAY+vj//wEgAygLMjwucHJvdG9idWZfdW5pdHRlc3QuVGVzdEh1Z2VGaWVsZE51bWJlcnMuU3RyaW5nU3RyaW5nTWFwRW50cnkSGgoMb25lb2ZfdWludDMyGPv4//8BIAEoDUgAEkMKFG9uZW9mX3Rlc3RfYWxsX3R5cGVzGPz4//8BIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0gAEhoKDG9uZW9mX3N0cmluZxj9+P//ASABKAlIABIZCgtvbmVvZl9ieXRlcxj++P//ASABKAxIABokCg1PcHRpb25hbEdyb3VwEhMKB2dyb3VwX2EY+fj//wEgASgFGjYKFFN0cmluZ1N0cmluZ01hcEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEqDAjgqv//ARDw+P//AUINCgtvbmVvZl9maWVsZCKxAQoYVGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlEg4KBmZpZWxkMRgBIAEoBRIOCgZmaWVsZDIYAiABKAUSDgoGZmllbGQzGAMgASgFEg4KBmZpZWxkNBgEIAEoBRIOCgZmaWVsZDYYBiABKAUSDgoGZmllbGQ3GAcgASgFEg4KBmZpZWxkOBgIIAEoBRIOCgZmaWVsZDkYCSABKAUSDwoHZmllbGQxMBgKIAEoBSoECAUQBiKWBAodVGVzdE5lc3RlZEdyb3VwRXh0ZW5zaW9uT3V0ZXISYQoTbGF5ZXIxb3B0aW9uYWxncm91cBgBIAEoCjJELnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyLkxheWVyMU9wdGlvbmFsR3JvdXAakQMKE0xheWVyMU9wdGlvbmFsR3JvdXASdQoTbGF5ZXIycmVwZWF0ZWRncm91cBgCIAMoCjJYLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyLkxheWVyMU9wdGlvbmFsR3JvdXAuTGF5ZXIyUmVwZWF0ZWRHcm91cBKTAQoibGF5ZXIyYW5vdGhlcm9wdGlvbmFscmVwZWF0ZWRncm91cBgEIAMoCjJnLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRHcm91cEV4dGVuc2lvbk91dGVyLkxheWVyMU9wdGlvbmFsR3JvdXAuTGF5ZXIyQW5vdGhlck9wdGlvbmFsUmVwZWF0ZWRHcm91cBoyChNMYXllcjJSZXBlYXRlZEdyb3VwEhUKDWFub3RoZXJfZmllbGQYBiABKAkqBAgDEAQaOQoiTGF5ZXIyQW5vdGhlck9wdGlvbmFsUmVwZWF0ZWRHcm91cBITCgtidXRfd2h5X3RobxgFIAEoCSI8CiZUZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25Jbm5lckV4dGVuc2lvbhISCgppbm5lcl9uYW1lGAEgASgJIv0DChtUZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUSDwoHZm9vX29uZRgBIAEoBRIPCgdmb29fdHdvGAYgASgFEhEKCWZvb190aHJlZRgHIAEoBRIQCghmb29fZm91chgNIAEoBSoECAIQAyoECAMQBSoECAkQCyoECA8QECoECBEQEioECBMQFDJHCgdiYXJfb25lEi4ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEV4dGVuc2lvblJhbmdlU2VyaWFsaXplGAIgASgFUgZiYXJPbmUyRwoHYmFyX3R3bxIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25SYW5nZVNlcmlhbGl6ZRgEIAEoBVIGYmFyVHdvMksKCWJhcl90aHJlZRIuLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RFeHRlbnNpb25SYW5nZVNlcmlhbGl6ZRgKIAEoBVIIYmFyVGhyZWUySQoIYmFyX2ZvdXISLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYDyABKAVSB2JhckZvdXIySQoIYmFyX2ZpdmUSLi5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uUmFuZ2VTZXJpYWxpemUYEyABKAVSB2JhckZpdmUigQEKFVRlc3RWZXJpZnlJbnQzMlNpbXBsZRIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUi9QEKD1Rlc3RWZXJpZnlJbnQzMhIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyLKAgoVVGVzdFZlcmlmeU1vc3RseUludDMyEhkKEW9wdGlvbmFsX2ludDY0XzMwGB4gASgDEhgKEG9wdGlvbmFsX2ludDMyXzEYASABKAUSGAoQb3B0aW9uYWxfaW50MzJfMhgCIAEoBRIYChBvcHRpb25hbF9pbnQzMl8zGAMgASgFEhgKEG9wdGlvbmFsX2ludDMyXzQYBCABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjMYPyABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjQYQCABKAUSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyL1AgojVGVzdFZlcmlmeU1vc3RseUludDMyQmlnRmllbGROdW1iZXISGQoRb3B0aW9uYWxfaW50NjRfMzAYHiABKAMSGwoSb3B0aW9uYWxfaW50MzJfMzAwGKwCIAEoBRIYChBvcHRpb25hbF9pbnQzMl8xGAEgASgFEhgKEG9wdGlvbmFsX2ludDMyXzIYAiABKAUSGAoQb3B0aW9uYWxfaW50MzJfMxgDIAEoBRIYChBvcHRpb25hbF9pbnQzMl80GAQgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMihgEKFlRlc3RWZXJpZnlVaW50MzJTaW1wbGUSGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGQoRb3B0aW9uYWxfdWludDMyXzIYAiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzYzGD8gASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NBhAIAEoDSL6AQoQVGVzdFZlcmlmeVVpbnQzMhIZChFvcHRpb25hbF91aW50MzJfMRgBIAEoDRIZChFvcHRpb25hbF91aW50MzJfMhgCIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjMYPyABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY0GEAgASgNEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMi+gEKE1Rlc3RWZXJpZnlPbmVVaW50MzISGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGAoQb3B0aW9uYWxfaW50MzJfMhgCIAEoBRIZChFvcHRpb25hbF9pbnQzMl82Mxg/IAEoBRIZChFvcHRpb25hbF9pbnQzMl82NBhAIAEoBRI7ChJvcHRpb25hbF9hbGxfdHlwZXMYCSABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoScmVwZWF0ZWRfYWxsX3R5cGVzGAogAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIqECCiBUZXN0VmVyaWZ5T25lSW50MzJCaWdGaWVsZE51bWJlchIZChFvcHRpb25hbF9pbnQzMl82NRhBIAEoBRIYChBvcHRpb25hbF9pbnQ2NF8xGAEgASgDEhgKEG9wdGlvbmFsX2ludDY0XzIYAiABKAMSGQoRb3B0aW9uYWxfaW50NjRfNjMYPyABKAMSGQoRb3B0aW9uYWxfaW50NjRfNjQYQCABKAMSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyK8AgodVGVzdFZlcmlmeUludDMyQmlnRmllbGROdW1iZXISHAoTb3B0aW9uYWxfaW50MzJfMTAwMBjoByABKAUSGQoRb3B0aW9uYWxfaW50MzJfNjUYQSABKAUSGAoQb3B0aW9uYWxfaW50MzJfMRgBIAEoBRIYChBvcHRpb25hbF9pbnQzMl8yGAIgASgFEhkKEW9wdGlvbmFsX2ludDMyXzYzGD8gASgFEhkKEW9wdGlvbmFsX2ludDMyXzY0GEAgASgFEjsKEm9wdGlvbmFsX2FsbF90eXBlcxgJIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxI7ChJyZXBlYXRlZF9hbGxfdHlwZXMYCiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMiwwIKHlRlc3RWZXJpZnlVaW50MzJCaWdGaWVsZE51bWJlchIdChRvcHRpb25hbF91aW50MzJfMTAwMBjoByABKA0SGgoSb3B0aW9uYWxfdWludDMyXzY1GEEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8xGAEgASgNEhkKEW9wdGlvbmFsX3VpbnQzMl8yGAIgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82Mxg/IAEoDRIaChJvcHRpb25hbF91aW50MzJfNjQYQCABKA0SOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAkgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgKIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyKIBAoeVGVzdFZlcmlmeUJpZ0ZpZWxkTnVtYmVyVWludDMyElEKD29wdGlvbmFsX25lc3RlZBgBIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RWZXJpZnlCaWdGaWVsZE51bWJlclVpbnQzMi5OZXN0ZWQakgMKBk5lc3RlZBIdChRvcHRpb25hbF91aW50MzJfNTAwMBiIJyABKA0SHQoUb3B0aW9uYWxfdWludDMyXzEwMDAY6AcgASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NhhCIAEoDRIaChJvcHRpb25hbF91aW50MzJfNjUYQSABKA0SGQoRb3B0aW9uYWxfdWludDMyXzEYASABKA0SGQoRb3B0aW9uYWxfdWludDMyXzIYAiABKA0SGgoSb3B0aW9uYWxfdWludDMyXzYzGD8gASgNEhoKEm9wdGlvbmFsX3VpbnQzMl82NBhAIAEoDRJRCg9vcHRpb25hbF9uZXN0ZWQYCSABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5UZXN0VmVyaWZ5QmlnRmllbGROdW1iZXJVaW50MzIuTmVzdGVkElEKD3JlcGVhdGVkX25lc3RlZBgKIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RWZXJpZnlCaWdGaWVsZE51bWJlclVpbnQzMi5OZXN0ZWQiiSMKD0VudW1QYXJzZVRlc3RlchJTCh1vcHRpb25hbF9zZXFfc21hbGxfMF9sb3dmaWVsZBgBIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVAodb3B0aW9uYWxfc2VxX3NtYWxsXzBfbWlkZmllbGQY6QcgASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJUChxvcHRpb25hbF9zZXFfc21hbGxfMF9oaWZpZWxkGMGEPSABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElMKHXJlcGVhdGVkX3NlcV9zbWFsbF8wX2xvd2ZpZWxkGAIgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMBJUCh1yZXBlYXRlZF9zZXFfc21hbGxfMF9taWRmaWVsZBjqByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwElQKHHJlcGVhdGVkX3NlcV9zbWFsbF8wX2hpZmllbGQYwoQ9IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDASVQobcGFja2VkX3NlcV9zbWFsbF8wX2xvd2ZpZWxkGAMgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMEICEAESVgobcGFja2VkX3NlcV9zbWFsbF8wX21pZGZpZWxkGOsHIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDBCAhABElYKGnBhY2tlZF9zZXFfc21hbGxfMF9oaWZpZWxkGMOEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwwQgIQARJTCh1vcHRpb25hbF9zZXFfc21hbGxfMV9sb3dmaWVsZBgEIAEoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVAodb3B0aW9uYWxfc2VxX3NtYWxsXzFfbWlkZmllbGQY7AcgASgOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJUChxvcHRpb25hbF9zZXFfc21hbGxfMV9oaWZpZWxkGMSEPSABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElMKHXJlcGVhdGVkX3NlcV9zbWFsbF8xX2xvd2ZpZWxkGAUgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMRJUCh1yZXBlYXRlZF9zZXFfc21hbGxfMV9taWRmaWVsZBjtByADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxElQKHHJlcGVhdGVkX3NlcV9zbWFsbF8xX2hpZmllbGQYxYQ9IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDESVQobcGFja2VkX3NlcV9zbWFsbF8xX2xvd2ZpZWxkGAYgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcVNtYWxsMUICEAESVgobcGFja2VkX3NlcV9zbWFsbF8xX21pZGZpZWxkGO4HIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFTbWFsbDFCAhABElYKGnBhY2tlZF9zZXFfc21hbGxfMV9oaWZpZWxkGMaEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxU21hbGwxQgIQARJQChtvcHRpb25hbF9zZXFfbGFyZ2VfbG93ZmllbGQYByABKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUQobb3B0aW9uYWxfc2VxX2xhcmdlX21pZGZpZWxkGO8HIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJRChpvcHRpb25hbF9zZXFfbGFyZ2VfaGlmaWVsZBjHhD0gASgOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElAKG3JlcGVhdGVkX3NlcV9sYXJnZV9sb3dmaWVsZBgIIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZRJRChtyZXBlYXRlZF9zZXFfbGFyZ2VfbWlkZmllbGQY8AcgAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlElEKGnJlcGVhdGVkX3NlcV9sYXJnZV9oaWZpZWxkGMiEPSADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2USUgoZcGFja2VkX3NlcV9sYXJnZV9sb3dmaWVsZBgJIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5TZXFMYXJnZUICEAESUwoZcGFja2VkX3NlcV9sYXJnZV9taWRmaWVsZBjxByADKA4yKy5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuU2VxTGFyZ2VCAhABElMKGHBhY2tlZF9zZXFfbGFyZ2VfaGlmaWVsZBjJhD0gAygOMisucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLlNlcUxhcmdlQgIQARJRChtvcHRpb25hbF9hcmJpdHJhcnlfbG93ZmllbGQYCiABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKG29wdGlvbmFsX2FyYml0cmFyeV9taWRmaWVsZBjyByABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElIKGm9wdGlvbmFsX2FyYml0cmFyeV9oaWZpZWxkGMqEPSABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5ElEKG3JlcGVhdGVkX2FyYml0cmFyeV9sb3dmaWVsZBgLIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnkSUgobcmVwZWF0ZWRfYXJiaXRyYXJ5X21pZGZpZWxkGPMHIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnkSUgoacmVwZWF0ZWRfYXJiaXRyYXJ5X2hpZmllbGQYy4Q9IAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnkSUwoZcGFja2VkX2FyYml0cmFyeV9sb3dmaWVsZBgMIAMoDjIsLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3Rlci5BcmJpdHJhcnlCAhABElQKGXBhY2tlZF9hcmJpdHJhcnlfbWlkZmllbGQY9AcgAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeUICEAESVAoYcGFja2VkX2FyYml0cmFyeV9oaWZpZWxkGMyEPSADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5QgIQARITCgtvdGhlcl9maWVsZBhjIAEoBSJKCglTZXFTbWFsbDASFwoTU0VRX1NNQUxMXzBfREVGQVVMVBAAEhEKDVNFUV9TTUFMTF8wXzEQARIRCg1TRVFfU01BTExfMF8yEAIiSgoJU2VxU21hbGwxEhcKE1NFUV9TTUFMTF8xX0RFRkFVTFQQARIRCg1TRVFfU01BTExfMV8yEAISEQoNU0VRX1NNQUxMXzFfMxADIoQFCghTZXFMYXJnZRIeChFTRVFfTEFSR0VfREVGQVVMVBD///////////8BEg8KC1NFUV9MQVJHRV8wEAASDwoLU0VRX0xBUkdFXzEQARIPCgtTRVFfTEFSR0VfMhACEg8KC1NFUV9MQVJHRV8zEAMSDwoLU0VRX0xBUkdFXzQQBBIPCgtTRVFfTEFSR0VfNRAFEg8KC1NFUV9MQVJHRV82EAYSDwoLU0VRX0xBUkdFXzcQBxIPCgtTRVFfTEFSR0VfOBAIEg8KC1NFUV9MQVJHRV85EAkSEAoMU0VRX0xBUkdFXzEwEAoSEAoMU0VRX0xBUkdFXzExEAsSEAoMU0VRX0xBUkdFXzEyEAwSEAoMU0VRX0xBUkdFXzEzEA0SEAoMU0VRX0xBUkdFXzE0EA4SEAoMU0VRX0xBUkdFXzE1EA8SEAoMU0VRX0xBUkdFXzE2EBASEAoMU0VRX0xBUkdFXzE3EBESEAoMU0VRX0xBUkdFXzE4EBISEAoMU0VRX0xBUkdFXzE5EBMSEAoMU0VRX0xBUkdFXzIwEBQSEAoMU0VRX0xBUkdFXzIxEBUSEAoMU0VRX0xBUkdFXzIyEBYSEAoMU0VRX0xBUkdFXzIzEBcSEAoMU0VRX0xBUkdFXzI0EBgSEAoMU0VRX0xBUkdFXzI1EBkSEAoMU0VRX0xBUkdFXzI2EBoSEAoMU0VRX0xBUkdFXzI3EBsSEAoMU0VRX0xBUkdFXzI4EBwSEAoMU0VRX0xBUkdFXzI5EB0SEAoMU0VRX0xBUkdFXzMwEB4SEAoMU0VRX0xBUkdFXzMxEB8SEAoMU0VRX0xBUkdFXzMyECASEAoMU0VRX0xBUkdFXzMzECEinQEKCUFyYml0cmFyeRIeChFBUkJJVFJBUllfREVGQVVMVBCNvvj///////8BEhgKC0FSQklUUkFSWV8xEIX//////////wESEAoLQVJCSVRSQVJZXzIQ1QESEQoLQVJCSVRSQVJZXzMQ3YENEhoKDUFSQklUUkFSWV9NSU4QgICAgPj/////ARIVCg1BUkJJVFJBUllfTUFYEP////8HKgoIgIl6EICAgIACMogBChZvcHRpb25hbF9hcmJpdHJhcnlfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyGICJeiABKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5UhRvcHRpb25hbEFyYml0cmFyeUV4dDKIAQoWcmVwZWF0ZWRfYXJiaXRyYXJ5X2V4dBIiLnByb3RvYnVmX3VuaXR0ZXN0LkVudW1QYXJzZVRlc3RlchiBiXogAygOMiwucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyLkFyYml0cmFyeVIUcmVwZWF0ZWRBcmJpdHJhcnlFeHQyiAEKFHBhY2tlZF9hcmJpdHJhcnlfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuRW51bVBhcnNlVGVzdGVyGIKJeiADKA4yLC5wcm90b2J1Zl91bml0dGVzdC5FbnVtUGFyc2VUZXN0ZXIuQXJiaXRyYXJ5QgIQAVIScGFja2VkQXJiaXRyYXJ5RXh0ItQECg9Cb29sUGFyc2VUZXN0ZXISHgoWb3B0aW9uYWxfYm9vbF9sb3dmaWVsZBgBIAEoCBIfChZvcHRpb25hbF9ib29sX21pZGZpZWxkGOkHIAEoCBIfChVvcHRpb25hbF9ib29sX2hpZmllbGQYwYQ9IAEoCBIeChZyZXBlYXRlZF9ib29sX2xvd2ZpZWxkGAIgAygIEh8KFnJlcGVhdGVkX2Jvb2xfbWlkZmllbGQY6gcgAygIEh8KFXJlcGVhdGVkX2Jvb2xfaGlmaWVsZBjChD0gAygIEiAKFHBhY2tlZF9ib29sX2xvd2ZpZWxkGAMgAygIQgIQARIhChRwYWNrZWRfYm9vbF9taWRmaWVsZBjrByADKAhCAhABEiEKE3BhY2tlZF9ib29sX2hpZmllbGQYw4Q9IAMoCEICEAESEwoLb3RoZXJfZmllbGQYYyABKAUqCgiAiXoQgICAgAIyUAoRb3B0aW9uYWxfYm9vbF9leHQSIi5wcm90b2J1Zl91bml0dGVzdC5Cb29sUGFyc2VUZXN0ZXIYgIl6IAEoCFIPb3B0aW9uYWxCb29sRXh0MlAKEXJlcGVhdGVkX2Jvb2xfZXh0EiIucHJvdG9idWZfdW5pdHRlc3QuQm9vbFBhcnNlVGVzdGVyGIGJeiADKAhSD3JlcGVhdGVkQm9vbEV4dDJQCg9wYWNrZWRfYm9vbF9leHQSIi5wcm90b2J1Zl91bml0dGVzdC5Cb29sUGFyc2VUZXN0ZXIYgol6IAMoCEICEAFSDXBhY2tlZEJvb2xFeHQi5wQKEEludDMyUGFyc2VUZXN0ZXISHwoXb3B0aW9uYWxfaW50MzJfbG93ZmllbGQYASABKAUSIAoXb3B0aW9uYWxfaW50MzJfbWlkZmllbGQY6QcgASgFEiAKFm9wdGlvbmFsX2ludDMyX2hpZmllbGQYwYQ9IAEoBRIfChdyZXBlYXRlZF9pbnQzMl9sb3dmaWVsZBgCIAMoBRIgChdyZXBlYXRlZF9pbnQzMl9taWRmaWVsZBjqByADKAUSIAoWcmVwZWF0ZWRfaW50MzJfaGlmaWVsZBjChD0gAygFEiEKFXBhY2tlZF9pbnQzMl9sb3dmaWVsZBgDIAMoBUICEAESIgoVcGFja2VkX2ludDMyX21pZGZpZWxkGOsHIAMoBUICEAESIgoUcGFja2VkX2ludDMyX2hpZmllbGQYw4Q9IAMoBUICEAESEwoLb3RoZXJfZmllbGQYYyABKAUqCgiAiXoQgICAgAIyUwoSb3B0aW9uYWxfaW50MzJfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50MzJQYXJzZVRlc3RlchiAiXogASgFUhBvcHRpb25hbEludDMyRXh0MlMKEnJlcGVhdGVkX2ludDMyX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDMyUGFyc2VUZXN0ZXIYgYl6IAMoBVIQcmVwZWF0ZWRJbnQzMkV4dDJTChBwYWNrZWRfaW50MzJfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50MzJQYXJzZVRlc3RlchiCiXogAygFQgIQAVIOcGFja2VkSW50MzJFeHQi5wQKEEludDY0UGFyc2VUZXN0ZXISHwoXb3B0aW9uYWxfaW50NjRfbG93ZmllbGQYASABKAMSIAoXb3B0aW9uYWxfaW50NjRfbWlkZmllbGQY6QcgASgDEiAKFm9wdGlvbmFsX2ludDY0X2hpZmllbGQYwYQ9IAEoAxIfChdyZXBlYXRlZF9pbnQ2NF9sb3dmaWVsZBgCIAMoAxIgChdyZXBlYXRlZF9pbnQ2NF9taWRmaWVsZBjqByADKAMSIAoWcmVwZWF0ZWRfaW50NjRfaGlmaWVsZBjChD0gAygDEiEKFXBhY2tlZF9pbnQ2NF9sb3dmaWVsZBgDIAMoA0ICEAESIgoVcGFja2VkX2ludDY0X21pZGZpZWxkGOsHIAMoA0ICEAESIgoUcGFja2VkX2ludDY0X2hpZmllbGQYw4Q9IAMoA0ICEAESEwoLb3RoZXJfZmllbGQYYyABKAUqCgiAiXoQgICAgAIyUwoSb3B0aW9uYWxfaW50NjRfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50NjRQYXJzZVRlc3RlchiAiXogASgDUhBvcHRpb25hbEludDY0RXh0MlMKEnJlcGVhdGVkX2ludDY0X2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LkludDY0UGFyc2VUZXN0ZXIYgYl6IAMoA1IQcmVwZWF0ZWRJbnQ2NEV4dDJTChBwYWNrZWRfaW50NjRfZXh0EiMucHJvdG9idWZfdW5pdHRlc3QuSW50NjRQYXJzZVRlc3RlchiCiXogAygDQgIQAVIOcGFja2VkSW50NjRFeHQijAEKH0lubGluZWRTdHJpbmdJZHhSZWdyZXNzaW9uUHJvdG8SDAoEc3RyMRgBIAEoCRI/CgNzdWIYAiABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5JbmxpbmVkU3RyaW5nSWR4UmVncmVzc2lvblByb3RvEgwKBHN0cjIYAyABKAkSDAoEc3RyMxgEIAEoDCKfAwoRU3RyaW5nUGFyc2VUZXN0ZXISIAoYb3B0aW9uYWxfc3RyaW5nX2xvd2ZpZWxkGAEgASgJEiEKGG9wdGlvbmFsX3N0cmluZ19taWRmaWVsZBjpByABKAkSIQoXb3B0aW9uYWxfc3RyaW5nX2hpZmllbGQYwYQ9IAEoCRIgChhyZXBlYXRlZF9zdHJpbmdfbG93ZmllbGQYAiADKAkSIQoYcmVwZWF0ZWRfc3RyaW5nX21pZGZpZWxkGOoHIAMoCRIhChdyZXBlYXRlZF9zdHJpbmdfaGlmaWVsZBjChD0gAygJKgoIgIl6EICAgIACMlYKE29wdGlvbmFsX3N0cmluZ19leHQSJC5wcm90b2J1Zl91bml0dGVzdC5TdHJpbmdQYXJzZVRlc3RlchiAiXogASgJUhFvcHRpb25hbFN0cmluZ0V4dDJWChNyZXBlYXRlZF9zdHJpbmdfZXh0EiQucHJvdG9idWZfdW5pdHRlc3QuU3RyaW5nUGFyc2VUZXN0ZXIYgYl6IAMoCVIRcmVwZWF0ZWRTdHJpbmdFeHQiMwoNQmFkRmllbGROYW1lcxIVCg1PcHRpb25hbEludDMyGAEgASgFEgsKA2ZvchgCIAEoBSJ1ChpUZXN0TmVzdGVkTWVzc2FnZVJlZGFjdGlvbhIpCiFvcHRpb25hbF91bnJlZGFjdGVkX25lc3RlZF9zdHJpbmcYASABKAkSLAofb3B0aW9uYWxfcmVkYWN0ZWRfbmVzdGVkX3N0cmluZxgCIAEoCUIDgAEBIqkGCg5SZWRhY3RlZEZpZWxkcxIlChhvcHRpb25hbF9yZWRhY3RlZF9zdHJpbmcYASABKAlCA4ABARIiChpvcHRpb25hbF91bnJlZGFjdGVkX3N0cmluZxgCIAEoCRIlChhyZXBlYXRlZF9yZWRhY3RlZF9zdHJpbmcYAyADKAlCA4ABARIiChpyZXBlYXRlZF91bnJlZGFjdGVkX3N0cmluZxgEIAMoCRJVChlvcHRpb25hbF9yZWRhY3RlZF9tZXNzYWdlGAUgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb25CA4ABARJSChtvcHRpb25hbF91bnJlZGFjdGVkX21lc3NhZ2UYBiABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkTWVzc2FnZVJlZGFjdGlvbhJVChlyZXBlYXRlZF9yZWRhY3RlZF9tZXNzYWdlGAcgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdE5lc3RlZE1lc3NhZ2VSZWRhY3Rpb25CA4ABARJSChtyZXBlYXRlZF91bnJlZGFjdGVkX21lc3NhZ2UYCCADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkTWVzc2FnZVJlZGFjdGlvbhJaChNtYXBfcmVkYWN0ZWRfc3RyaW5nGAkgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuUmVkYWN0ZWRGaWVsZHMuTWFwUmVkYWN0ZWRTdHJpbmdFbnRyeUIDgAEBElkKFW1hcF91bnJlZGFjdGVkX3N0cmluZxgKIAMoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlJlZGFjdGVkRmllbGRzLk1hcFVucmVkYWN0ZWRTdHJpbmdFbnRyeRo4ChZNYXBSZWRhY3RlZFN0cmluZ0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaOgoYTWFwVW5yZWRhY3RlZFN0cmluZ0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiWwoIVGVzdENvcmQSHwoTb3B0aW9uYWxfYnl0ZXNfY29yZBgBIAEoDEICCAESLgobb3B0aW9uYWxfYnl0ZXNfY29yZF9kZWZhdWx0GAIgASgMOgVoZWxsb0ICCAEingEKGFRlc3RQYWNrZWRFbnVtU21hbGxSYW5nZRJICgR2YWxzGAEgAygOMjYucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEVudW1TbWFsbFJhbmdlLk5lc3RlZEVudW1CAhABIjgKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAyKZBAoRRW51bXNGb3JCZW5jaG1hcmsijAEKBEZsYXQSBgoCQTAQABIGCgJBMRABEgYKAkEyEAISBgoCQTMQAxIGCgJBNBAEEgYKAkE1EAUSBgoCQTYQBhIGCgJBNxAHEgYKAkE4EAgSBgoCQTkQCRIHCgNBMTAQChIHCgNBMTEQCxIHCgNBMTIQDBIHCgNBMTMQDRIHCgNBMTQQDhIHCgNBMTUQDyKTAQoKQWxtb3N0RmxhdBIGCgJCMBAAEgYKAkIxEAESBgoCQjIQAhIGCgJCMxADEgYKAkI1EAUSBgoCQjYQBhIGCgJCNxAHEgYKAkI4EAgSBgoCQjkQCRIHCgNCMTEQCxIHCgNCMTIQDBIHCgNCMTMQDRIHCgNCMTQQDhIHCgNCMTUQDxIHCgNCMTcQERIHCgNCMTkQEyLeAQoGU3BhcnNlEgkKBEM1MzYQmAQSCgoFQzgzODcQw0ESCgoFQzk2NzMQyUsSCwoGQzEwMjg1EK1QEgsKBkMxMzMxOBCGaBILCgZDMTU5NjMQ23wSDAoGQzE2NDM5ELeAARIMCgZDMTgxOTcQlY4BEgwKBkMxOTQzMBDmlwESDAoGQzIwMzYxEImfARIMCgZDMjA3MDYQ4qEBEgwKBkMyMTA1MBC6pAESDAoGQzIxOTA2EJKrARIMCgZDMjcyNjUQgdUBEgwKBkMzMDEwORCd6wESDAoGQzMxNjcwELb3ASKdBwokVGVzdE1lc3NhZ2VXaXRoTWFueVJlcGVhdGVkUHRyRmllbGRzEhkKEXJlcGVhdGVkX3N0cmluZ18xGAEgAygJEhkKEXJlcGVhdGVkX3N0cmluZ18yGAIgAygJEhkKEXJlcGVhdGVkX3N0cmluZ18zGAMgAygJEhkKEXJlcGVhdGVkX3N0cmluZ180GAQgAygJEhkKEXJlcGVhdGVkX3N0cmluZ181GAUgAygJEhkKEXJlcGVhdGVkX3N0cmluZ182GAYgAygJEhkKEXJlcGVhdGVkX3N0cmluZ183GAcgAygJEhkKEXJlcGVhdGVkX3N0cmluZ184GAggAygJEhkKEXJlcGVhdGVkX3N0cmluZ185GAkgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xMBgKIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTEYCyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzEyGAwgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xMxgNIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTQYDiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE1GA8gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xNhgQIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMTcYESADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzE4GBIgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18xORgTIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjAYFCADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzIxGBUgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yMhgWIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjMYFyADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI0GBggAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yNRgZIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjYYGiADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzI3GBsgAygJEhoKEnJlcGVhdGVkX3N0cmluZ18yOBgcIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMjkYHSADKAkSGgoScmVwZWF0ZWRfc3RyaW5nXzMwGB4gAygJEhoKEnJlcGVhdGVkX3N0cmluZ18zMRgfIAMoCRIaChJyZXBlYXRlZF9zdHJpbmdfMzIYICADKAkqUQoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYSDwoLRk9SRUlHTl9CQVgQICpBChZUZXN0UmVzZXJ2ZWRFbnVtRmllbGRzEgsKB1VOS05PV04QACIECAIQAiIECA8QDyIECAkQCyoDYmFyKgNiYXoqSwoUVGVzdEVudW1XaXRoRHVwVmFsdWUSCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqJAQoOVGVzdFNwYXJzZUVudW0SDAoIU1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIVCghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wESDAoIU1BBUlNFX0YQABIMCghTUEFSU0VfRxACKosPCg1WZXJ5TGFyZ2VFbnVtEhYKEkVOVU1fTEFCRUxfREVGQVVMVBAAEhAKDEVOVU1fTEFCRUxfMRABEhAKDEVOVU1fTEFCRUxfMhACEhAKDEVOVU1fTEFCRUxfMxADEhAKDEVOVU1fTEFCRUxfNBAEEhAKDEVOVU1fTEFCRUxfNRAFEhAKDEVOVU1fTEFCRUxfNhAGEhAKDEVOVU1fTEFCRUxfNxAHEhAKDEVOVU1fTEFCRUxfOBAIEhAKDEVOVU1fTEFCRUxfORAJEhEKDUVOVU1fTEFCRUxfMTAQChIRCg1FTlVNX0xBQkVMXzExEAsSEQoNRU5VTV9MQUJFTF8xMhAMEhEKDUVOVU1fTEFCRUxfMTMQDRIRCg1FTlVNX0xBQkVMXzE0EA4SEQoNRU5VTV9MQUJFTF8xNRAPEhEKDUVOVU1fTEFCRUxfMTYQEBIRCg1FTlVNX0xBQkVMXzE3EBESEQoNRU5VTV9MQUJFTF8xOBASEhEKDUVOVU1fTEFCRUxfMTkQExIRCg1FTlVNX0xBQkVMXzIwEBQSEQoNRU5VTV9MQUJFTF8yMRAVEhEKDUVOVU1fTEFCRUxfMjIQFhIRCg1FTlVNX0xBQkVMXzIzEBcSEQoNRU5VTV9MQUJFTF8yNBAYEhEKDUVOVU1fTEFCRUxfMjUQGRIRCg1FTlVNX0xBQkVMXzI2EBoSEQoNRU5VTV9MQUJFTF8yNxAbEhEKDUVOVU1fTEFCRUxfMjgQHBIRCg1FTlVNX0xBQkVMXzI5EB0SEQoNRU5VTV9MQUJFTF8zMBAeEhEKDUVOVU1fTEFCRUxfMzEQHxIRCg1FTlVNX0xBQkVMXzMyECASEQoNRU5VTV9MQUJFTF8zMxAhEhEKDUVOVU1fTEFCRUxfMzQQIhIRCg1FTlVNX0xBQkVMXzM1ECMSEQoNRU5VTV9MQUJFTF8zNhAkEhEKDUVOVU1fTEFCRUxfMzcQJRIRCg1FTlVNX0xBQkVMXzM4ECYSEQoNRU5VTV9MQUJFTF8zORAnEhEKDUVOVU1fTEFCRUxfNDAQKBIRCg1FTlVNX0xBQkVMXzQxECkSEQoNRU5VTV9MQUJFTF80MhAqEhEKDUVOVU1fTEFCRUxfNDMQKxIRCg1FTlVNX0xBQkVMXzQ0ECwSEQoNRU5VTV9MQUJFTF80NRAtEhEKDUVOVU1fTEFCRUxfNDYQLhIRCg1FTlVNX0xBQkVMXzQ3EC8SEQoNRU5VTV9MQUJFTF80OBAwEhEKDUVOVU1fTEFCRUxfNDkQMRIRCg1FTlVNX0xBQkVMXzUwEDISEQoNRU5VTV9MQUJFTF81MRAzEhEKDUVOVU1fTEFCRUxfNTIQNBIRCg1FTlVNX0xBQkVMXzUzEDUSEQoNRU5VTV9MQUJFTF81NBA2EhEKDUVOVU1fTEFCRUxfNTUQNxIRCg1FTlVNX0xBQkVMXzU2EDgSEQoNRU5VTV9MQUJFTF81NxA5EhEKDUVOVU1fTEFCRUxfNTgQOhIRCg1FTlVNX0xBQkVMXzU5EDsSEQoNRU5VTV9MQUJFTF82MBA8EhEKDUVOVU1fTEFCRUxfNjEQPRIRCg1FTlVNX0xBQkVMXzYyED4SEQoNRU5VTV9MQUJFTF82MxA/EhEKDUVOVU1fTEFCRUxfNjQQQBIRCg1FTlVNX0xBQkVMXzY1EEESEQoNRU5VTV9MQUJFTF82NhBCEhEKDUVOVU1fTEFCRUxfNjcQQxIRCg1FTlVNX0xBQkVMXzY4EEQSEQoNRU5VTV9MQUJFTF82ORBFEhEKDUVOVU1fTEFCRUxfNzAQRhIRCg1FTlVNX0xBQkVMXzcxEEcSEQoNRU5VTV9MQUJFTF83MhBIEhEKDUVOVU1fTEFCRUxfNzMQSRIRCg1FTlVNX0xBQkVMXzc0EEoSEQoNRU5VTV9MQUJFTF83NRBLEhEKDUVOVU1fTEFCRUxfNzYQTBIRCg1FTlVNX0xBQkVMXzc3EE0SEQoNRU5VTV9MQUJFTF83OBBOEhEKDUVOVU1fTEFCRUxfNzkQTxIRCg1FTlVNX0xBQkVMXzgwEFASEQoNRU5VTV9MQUJFTF84MRBREhEKDUVOVU1fTEFCRUxfODIQUhIRCg1FTlVNX0xBQkVMXzgzEFMSEQoNRU5VTV9MQUJFTF84NBBUEhEKDUVOVU1fTEFCRUxfODUQVRIRCg1FTlVNX0xBQkVMXzg2EFYSEQoNRU5VTV9MQUJFTF84NxBXEhEKDUVOVU1fTEFCRUxfODgQWBIRCg1FTlVNX0xBQkVMXzg5EFkSEQoNRU5VTV9MQUJFTF85MBBaEhEKDUVOVU1fTEFCRUxfOTEQWxIRCg1FTlVNX0xBQkVMXzkyEFwSEQoNRU5VTV9MQUJFTF85MxBdEhEKDUVOVU1fTEFCRUxfOTQQXhIRCg1FTlVNX0xBQkVMXzk1EF8SEQoNRU5VTV9MQUJFTF85NhBgEhEKDUVOVU1fTEFCRUxfOTcQYRIRCg1FTlVNX0xBQkVMXzk4EGISEQoNRU5VTV9MQUJFTF85ORBjEhIKDkVOVU1fTEFCRUxfMTAwEGQymQEKC1Rlc3RTZXJ2aWNlEkQKA0ZvbxIdLnByb3RvYnVmX3VuaXR0ZXN0LkZvb1JlcXVlc3QaHi5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXNwb25zZRJECgNCYXISHS5wcm90b2J1Zl91bml0dGVzdC5CYXJSZXF1ZXN0Gh4ucHJvdG9idWZfdW5pdHRlc3QuQmFyUmVzcG9uc2U6XgoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYASABKAVSFm9wdGlvbmFsSW50MzJFeHRlbnNpb246XgoYb3B0aW9uYWxfaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYAiABKANSFm9wdGlvbmFsSW50NjRFeHRlbnNpb246YAoZb3B0aW9uYWxfdWludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAMgASgNUhdvcHRpb25hbFVpbnQzMkV4dGVuc2lvbjpgChlvcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYBCABKARSF29wdGlvbmFsVWludDY0RXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3NpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgFIAEoEVIXb3B0aW9uYWxTaW50MzJFeHRlbnNpb246YAoZb3B0aW9uYWxfc2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAYgASgSUhdvcHRpb25hbFNpbnQ2NEV4dGVuc2lvbjpiChpvcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAcgASgHUhhvcHRpb25hbEZpeGVkMzJFeHRlbnNpb246Ygoab3B0aW9uYWxfZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgIIAEoBlIYb3B0aW9uYWxGaXhlZDY0RXh0ZW5zaW9uOmQKG29wdGlvbmFsX3NmaXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAkgASgPUhlvcHRpb25hbFNmaXhlZDMyRXh0ZW5zaW9uOmQKG29wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAogASgQUhlvcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uOl4KGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAsgASgCUhZvcHRpb25hbEZsb2F0RXh0ZW5zaW9uOmAKGW9wdGlvbmFsX2RvdWJsZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoAVIXb3B0aW9uYWxEb3VibGVFeHRlbnNpb246XAoXb3B0aW9uYWxfYm9vbF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgNIAEoCFIVb3B0aW9uYWxCb29sRXh0ZW5zaW9uOmAKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgOIAEoCVIXb3B0aW9uYWxTdHJpbmdFeHRlbnNpb246XgoYb3B0aW9uYWxfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDyABKAxSFm9wdGlvbmFsQnl0ZXNFeHRlbnNpb246iQEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoyKi5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjqeAQohb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIeb3B0aW9uYWxOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOpQBCiJvcHRpb25hbF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYEyABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZVIfb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqYAQohb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZVIeb3B0aW9uYWxJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOpUBCh5vcHRpb25hbF9uZXN0ZWRfZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgVIAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtvcHRpb25hbE5lc3RlZEVudW1FeHRlbnNpb246iwEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uOo8BCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhtvcHRpb25hbEltcG9ydEVudW1FeHRlbnNpb246bwofb3B0aW9uYWxfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBggASgJQgIIAlIcb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbjpcChdvcHRpb25hbF9jb3JkX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBkgASgJUhVvcHRpb25hbENvcmRFeHRlbnNpb246qwEKKG9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUiRvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2VFeHRlbnNpb246ngEKH29wdGlvbmFsX2xhenlfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgbIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIcb3B0aW9uYWxMYXp5TWVzc2FnZUV4dGVuc2lvbjqzAQoqb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYHCABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICeAFSJm9wdGlvbmFsVW52ZXJpZmllZExhenlNZXNzYWdlRXh0ZW5zaW9uOl4KGHJlcGVhdGVkX2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGB8gAygFUhZyZXBlYXRlZEludDMyRXh0ZW5zaW9uOl4KGHJlcGVhdGVkX2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCAgAygDUhZyZXBlYXRlZEludDY0RXh0ZW5zaW9uOmAKGXJlcGVhdGVkX3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxghIAMoDVIXcmVwZWF0ZWRVaW50MzJFeHRlbnNpb246YAoZcmVwZWF0ZWRfdWludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCIgAygEUhdyZXBlYXRlZFVpbnQ2NEV4dGVuc2lvbjpgChlyZXBlYXRlZF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYIyADKBFSF3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uOmAKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgkIAMoElIXcmVwZWF0ZWRTaW50NjRFeHRlbnNpb246YgoacmVwZWF0ZWRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxglIAMoB1IYcmVwZWF0ZWRGaXhlZDMyRXh0ZW5zaW9uOmIKGnJlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJiADKAZSGHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbjpkChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMoD1IZcmVwZWF0ZWRTZml4ZWQzMkV4dGVuc2lvbjpkChtyZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgoIAMoEFIZcmVwZWF0ZWRTZml4ZWQ2NEV4dGVuc2lvbjpeChhyZXBlYXRlZF9mbG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgpIAMoAlIWcmVwZWF0ZWRGbG9hdEV4dGVuc2lvbjpgChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKiADKAFSF3JlcGVhdGVkRG91YmxlRXh0ZW5zaW9uOlwKF3JlcGVhdGVkX2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKyADKAhSFXJlcGVhdGVkQm9vbEV4dGVuc2lvbjpgChlyZXBlYXRlZF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYLCADKAlSF3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uOl4KGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGC0gAygMUhZyZXBlYXRlZEJ5dGVzRXh0ZW5zaW9uOokBChdyZXBlYXRlZGdyb3VwX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGC4gAygKMioucHJvdG9idWZfdW5pdHRlc3QuUmVwZWF0ZWRHcm91cF9leHRlbnNpb25SFnJlcGVhdGVkZ3JvdXBFeHRlbnNpb246ngEKIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHnJlcGVhdGVkTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqUAQoicmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2VSH3JlcGVhdGVkRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246mAEKIXJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSHnJlcGVhdGVkSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqVAQoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYMyADKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbcmVwZWF0ZWROZXN0ZWRFbnVtRXh0ZW5zaW9uOosBCh9yZXBlYXRlZF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bVIccmVwZWF0ZWRGb3JlaWduRW51bUV4dGVuc2lvbjqPAQoecmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIbcmVwZWF0ZWRJbXBvcnRFbnVtRXh0ZW5zaW9uOm8KH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg2IAMoCUICCAJSHHJlcGVhdGVkU3RyaW5nUGllY2VFeHRlbnNpb246XAoXcmVwZWF0ZWRfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg3IAMoCVIVcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uOp4BCh9yZXBlYXRlZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSHHJlcGVhdGVkTGF6eU1lc3NhZ2VFeHRlbnNpb246YAoXZGVmYXVsdF9pbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg9IAEoBToCNDFSFWRlZmF1bHRJbnQzMkV4dGVuc2lvbjpgChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MlIVZGVmYXVsdEludDY0RXh0ZW5zaW9uOmIKGGRlZmF1bHRfdWludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD8gASgNOgI0M1IWZGVmYXVsdFVpbnQzMkV4dGVuc2lvbjpiChhkZWZhdWx0X3VpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDRSFmRlZmF1bHRVaW50NjRFeHRlbnNpb246YwoYZGVmYXVsdF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQSABKBE6Ay00NVIWZGVmYXVsdFNpbnQzMkV4dGVuc2lvbjpiChhkZWZhdWx0X3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhCIAEoEjoCNDZSFmRlZmF1bHRTaW50NjRFeHRlbnNpb246ZAoZZGVmYXVsdF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEMgASgHOgI0N1IXZGVmYXVsdEZpeGVkMzJFeHRlbnNpb246ZAoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEQgASgGOgI0OFIXZGVmYXVsdEZpeGVkNjRFeHRlbnNpb246ZgoaZGVmYXVsdF9zZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhFIAEoDzoCNDlSGGRlZmF1bHRTZml4ZWQzMkV4dGVuc2lvbjpnChpkZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTBSGGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbjpiChdkZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEcgASgCOgQ1MS41UhVkZWZhdWx0RmxvYXRFeHRlbnNpb246ZQoYZGVmYXVsdF9kb3VibGVfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSCABKAE6BTUyMDAwUhZkZWZhdWx0RG91YmxlRXh0ZW5zaW9uOmAKFmRlZmF1bHRfYm9vbF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhJIAEoCDoEdHJ1ZVIUZGVmYXVsdEJvb2xFeHRlbnNpb246ZQoYZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSiABKAk6BWhlbGxvUhZkZWZhdWx0U3RyaW5nRXh0ZW5zaW9uOmMKF2RlZmF1bHRfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSyABKAw6BXdvcmxkUhVkZWZhdWx0Qnl0ZXNFeHRlbnNpb246mAEKHWRlZmF1bHRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYUSABKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhpkZWZhdWx0TmVzdGVkRW51bUV4dGVuc2lvbjqWAQoeZGVmYXVsdF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYUiABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSG2RlZmF1bHRGb3JlaWduRW51bUV4dGVuc2lvbjqZAQodZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSUhpkZWZhdWx0SW1wb3J0RW51bUV4dGVuc2lvbjpyCh5kZWZhdWx0X3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAlIbZGVmYXVsdFN0cmluZ1BpZWNlRXh0ZW5zaW9uOl8KFmRlZmF1bHRfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhVIAEoCToDMTIzUhRkZWZhdWx0Q29yZEV4dGVuc2lvbjpaChZvbmVvZl91aW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYbyABKA1SFG9uZW9mVWludDMyRXh0ZW5zaW9uOpgBCh5vbmVvZl9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhtvbmVvZk5lc3RlZE1lc3NhZ2VFeHRlbnNpb246WgoWb25lb2Zfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGHEgASgJUhRvbmVvZlN0cmluZ0V4dGVuc2lvbjpYChVvbmVvZl9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDFITb25lb2ZCeXRlc0V4dGVuc2lvbjpVChNteV9leHRlbnNpb25fc3RyaW5nEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGDIgASgJUhFteUV4dGVuc2lvblN0cmluZzpPChBteV9leHRlbnNpb25faW50EiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdzGAUgASgFUg5teUV4dGVuc2lvbkludDphChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhABUhRwYWNrZWRJbnQzMkV4dGVuc2lvbjphChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhABUhRwYWNrZWRJbnQ2NEV4dGVuc2lvbjpjChdwYWNrZWRfdWludDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAVIVcGFja2VkVWludDMyRXh0ZW5zaW9uOmMKF3BhY2tlZF91aW50NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABUhVwYWNrZWRVaW50NjRFeHRlbnNpb246YwoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEAFSFXBhY2tlZFNpbnQzMkV4dGVuc2lvbjpjChdwYWNrZWRfc2ludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAVIVcGFja2VkU2ludDY0RXh0ZW5zaW9uOmUKGHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAVIWcGFja2VkRml4ZWQzMkV4dGVuc2lvbjplChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEAFSFnBhY2tlZEZpeGVkNjRFeHRlbnNpb246ZwoZcGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAVIXcGFja2VkU2ZpeGVkMzJFeHRlbnNpb246ZwoZcGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAVIXcGFja2VkU2ZpeGVkNjRFeHRlbnNpb246YQoWcGFja2VkX2Zsb2F0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGQgAygCQgIQAVIUcGFja2VkRmxvYXRFeHRlbnNpb246YwoXcGFja2VkX2RvdWJsZV9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEAFSFXBhY2tlZERvdWJsZUV4dGVuc2lvbjpfChVwYWNrZWRfYm9vbF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAFSE3BhY2tlZEJvb2xFeHRlbnNpb246fwoVcGFja2VkX2VudW1fZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUICEAFSE3BhY2tlZEVudW1FeHRlbnNpb246ZwoYdW5wYWNrZWRfaW50MzJfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhaIAMoBUICEABSFnVucGFja2VkSW50MzJFeHRlbnNpb246ZwoYdW5wYWNrZWRfaW50NjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEABSFnVucGFja2VkSW50NjRFeHRlbnNpb246aQoZdW5wYWNrZWRfdWludDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhAAUhd1bnBhY2tlZFVpbnQzMkV4dGVuc2lvbjppChl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhdIAMoBEICEABSF3VucGFja2VkVWludDY0RXh0ZW5zaW9uOmkKGXVucGFja2VkX3NpbnQzMl9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAFIXdW5wYWNrZWRTaW50MzJFeHRlbnNpb246aQoZdW5wYWNrZWRfc2ludDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhAAUhd1bnBhY2tlZFNpbnQ2NEV4dGVuc2lvbjprChp1bnBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYCADKAdCAhAAUhh1bnBhY2tlZEZpeGVkMzJFeHRlbnNpb246awoadW5wYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAFIYdW5wYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOm0KG3VucGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAAUhl1bnBhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOm0KG3VucGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYyADKBBCAhAAUhl1bnBhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmcKGHVucGFja2VkX2Zsb2F0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhAAUhZ1bnBhY2tlZEZsb2F0RXh0ZW5zaW9uOmkKGXVucGFja2VkX2RvdWJsZV9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAFIXdW5wYWNrZWREb3VibGVFeHRlbnNpb246ZQoXdW5wYWNrZWRfYm9vbF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGYgAygIQgIQAFIVdW5wYWNrZWRCb29sRXh0ZW5zaW9uOoUBChd1bnBhY2tlZF9lbnVtX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bUICEABSFXVucGFja2VkRW51bUV4dGVuc2lvbjpyCg50ZXN0X2FsbF90eXBlcxInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RIdWdlRmllbGROdW1iZXJzGOCq//8BIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc1IMdGVzdEFsbFR5cGVzOn0KJXRlc3RfZXh0ZW5zaW9uX2luc2lkZV90YWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUYBSABKAVSIXRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZUV4dGVuc2lvbjqpAQoFaW5uZXISWC5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25PdXRlci5MYXllcjFPcHRpb25hbEdyb3VwLkxheWVyMlJlcGVhdGVkR3JvdXAYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TmVzdGVkR3JvdXBFeHRlbnNpb25Jbm5lckV4dGVuc2lvblIFaW5uZXJCHUINVW5pdHRlc3RQcm90b0gBgAEBiAEBkAEB+AEB", [fileDesc_google_protobuf_unittest_import]); /** * This proto includes every type of field in both singular and repeated @@ -2965,6 +2965,11 @@ export type TestOneof2_NestedMessage = Message<"protobuf_unittest.TestOneof2.Nes * @generated from field: repeated int32 corge_int = 2; */ corgeInt: number[]; + + /** + * @generated from field: optional protobuf_unittest.TestOneof2.NestedMessage child = 3; + */ + child?: TestOneof2_NestedMessage; }; // Describes the message protobuf_unittest.TestOneof2.NestedMessage. diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_arena_lite_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_arena_lite_pb.ts deleted file mode 100644 index 3cf8be9df..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_arena_lite_pb.ts +++ /dev/null @@ -1,610 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/unittest_proto3_arena_lite.proto (package proto3_arena_lite_unittest, syntax proto3) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import type { ImportMessage } from "./unittest_import_pb.js"; -import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; -import type { Message } from "@bufbuild/protobuf"; -import type { PublicImportMessage } from "./unittest_import_public_pb.js"; - -export const fileDesc_google_protobuf_unittest_proto3_arena_lite: GenDescFile = /*@__PURE__*/ - fileDesc("CjBnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zX2FyZW5hX2xpdGUucHJvdG8SGnByb3RvM19hcmVuYV9saXRlX3VuaXR0ZXN0Iq0RCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSVwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJMChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyKi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlElEKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjMucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SRgoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMicucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJZChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSVwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJMChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyKi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlElEKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjMucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SRgoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMicucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJZChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASVgoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyNi5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBSJDCgpOZXN0ZWRFbnVtEggKBFpFUk8QABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCKzAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARJACgtwYWNrZWRfZW51bRhnIAMoDjInLnByb3RvM19hcmVuYV9saXRlX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLkAwoRVGVzdFVucGFja2VkVHlwZXMSGgoOcmVwZWF0ZWRfaW50MzIYASADKAVCAhAAEhoKDnJlcGVhdGVkX2ludDY0GAIgAygDQgIQABIbCg9yZXBlYXRlZF91aW50MzIYAyADKA1CAhAAEhsKD3JlcGVhdGVkX3VpbnQ2NBgEIAMoBEICEAASGwoPcmVwZWF0ZWRfc2ludDMyGAUgAygRQgIQABIbCg9yZXBlYXRlZF9zaW50NjQYBiADKBJCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkMzIYByADKAdCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkNjQYCCADKAZCAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDMyGAkgAygPQgIQABIdChFyZXBlYXRlZF9zZml4ZWQ2NBgKIAMoEEICEAASGgoOcmVwZWF0ZWRfZmxvYXQYCyADKAJCAhAAEhsKD3JlcGVhdGVkX2RvdWJsZRgMIAMoAUICEAASGQoNcmVwZWF0ZWRfYm9vbBgNIAMoCEICEAASVQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YDiADKA4yMy5wcm90bzNfYXJlbmFfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAijgEKEk5lc3RlZFRlc3RBbGxUeXBlcxI9CgVjaGlsZBgBIAEoCzIuLnByb3RvM19hcmVuYV9saXRlX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxI5CgdwYXlsb2FkGAIgASgLMigucHJvdG8zX2FyZW5hX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSpSCgtGb3JlaWduRW51bRIQCgxGT1JFSUdOX1pFUk8QABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBkIFSAP4AQFiBnByb3RvMw", [fileDesc_google_protobuf_unittest_import]); - -/** - * This proto includes every type of field in both singular and repeated - * forms. - * - * @generated from message proto3_arena_lite_unittest.TestAllTypes - */ -export type TestAllTypes = Message<"proto3_arena_lite_unittest.TestAllTypes"> & { - /** - * Singular - * - * @generated from field: int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_arena_lite_unittest.ForeignMessage optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_import_message = 20; - */ - optionalImportMessage?: ImportMessage; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypes_NestedEnum; - - /** - * @generated from field: proto3_arena_lite_unittest.ForeignEnum optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnum; - - /** - * @generated from field: string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessage; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypes_NestedMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.ForeignMessage repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessage[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessage[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.ForeignEnum repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnum[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from oneof proto3_arena_lite_unittest.TestAllTypes.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypes_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message proto3_arena_lite_unittest.TestAllTypes. -// Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export const TestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0); - -/** - * @generated from message proto3_arena_lite_unittest.TestAllTypes.NestedMessage - */ -export type TestAllTypes_NestedMessage = Message<"proto3_arena_lite_unittest.TestAllTypes.NestedMessage"> & { - /** - * The field name "b" fails to compile in proto1 because it conflicts with - * a local variable named "b" in one of the generated methods. Doh. - * This file needs to compile in proto1 to test backwards-compatibility. - * - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_arena_lite_unittest.TestAllTypes.NestedMessage. -// Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export const TestAllTypes_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0, 0); - -/** - * @generated from enum proto3_arena_lite_unittest.TestAllTypes.NestedEnum - */ -export enum TestAllTypes_NestedEnum { - /** - * @generated from enum value: ZERO = 0; - */ - ZERO = 0, - - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * Intentionally negative. - * - * @generated from enum value: NEG = -1; - */ - NEG = -1, -} - -// Describes the enum proto3_arena_lite_unittest.TestAllTypes.NestedEnum. -export const TestAllTypes_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0, 0); - -/** - * @generated from message proto3_arena_lite_unittest.TestPackedTypes - */ -export type TestPackedTypes = Message<"proto3_arena_lite_unittest.TestPackedTypes"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.ForeignEnum packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnum[]; -}; - -// Describes the message proto3_arena_lite_unittest.TestPackedTypes. -// Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export const TestPackedTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 1); - -/** - * Explicitly set packed to false - * - * @generated from message proto3_arena_lite_unittest.TestUnpackedTypes - */ -export type TestUnpackedTypes = Message<"proto3_arena_lite_unittest.TestUnpackedTypes"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 1 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 2 [packed = false]; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 3 [packed = false]; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 4 [packed = false]; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 5 [packed = false]; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 6 [packed = false]; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 7 [packed = false]; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 8 [packed = false]; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 9 [packed = false]; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 10 [packed = false]; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 11 [packed = false]; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 12 [packed = false]; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 13 [packed = false]; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false]; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; -}; - -// Describes the message proto3_arena_lite_unittest.TestUnpackedTypes. -// Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export const TestUnpackedTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 2); - -/** - * This proto includes a recursively nested message. - * - * @generated from message proto3_arena_lite_unittest.NestedTestAllTypes - */ -export type NestedTestAllTypes = Message<"proto3_arena_lite_unittest.NestedTestAllTypes"> & { - /** - * @generated from field: proto3_arena_lite_unittest.NestedTestAllTypes child = 1; - */ - child?: NestedTestAllTypes; - - /** - * @generated from field: proto3_arena_lite_unittest.TestAllTypes payload = 2; - */ - payload?: TestAllTypes; -}; - -// Describes the message proto3_arena_lite_unittest.NestedTestAllTypes. -// Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export const NestedTestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 3); - -/** - * Define these after TestAllTypes to make sure the compiler can handle - * that. - * - * @generated from message proto3_arena_lite_unittest.ForeignMessage - */ -export type ForeignMessage = Message<"proto3_arena_lite_unittest.ForeignMessage"> & { - /** - * @generated from field: int32 c = 1; - */ - c: number; -}; - -// Describes the message proto3_arena_lite_unittest.ForeignMessage. -// Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export const ForeignMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 4); - -/** - * TestEmptyMessage is used to test behavior of unknown fields. - * - * @generated from message proto3_arena_lite_unittest.TestEmptyMessage - */ -export type TestEmptyMessage = Message<"proto3_arena_lite_unittest.TestEmptyMessage"> & { -}; - -// Describes the message proto3_arena_lite_unittest.TestEmptyMessage. -// Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export const TestEmptyMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 5); - -/** - * @generated from enum proto3_arena_lite_unittest.ForeignEnum - */ -export enum ForeignEnum { - /** - * @generated from enum value: FOREIGN_ZERO = 0; - */ - FOREIGN_ZERO = 0, - - /** - * @generated from enum value: FOREIGN_FOO = 4; - */ - FOREIGN_FOO = 4, - - /** - * @generated from enum value: FOREIGN_BAR = 5; - */ - FOREIGN_BAR = 5, - - /** - * @generated from enum value: FOREIGN_BAZ = 6; - */ - FOREIGN_BAZ = 6, -} - -// Describes the enum proto3_arena_lite_unittest.ForeignEnum. -export const ForeignEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena_lite, 0); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_arena_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_arena_pb.ts deleted file mode 100644 index 6b718433f..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_arena_pb.ts +++ /dev/null @@ -1,750 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/unittest_proto3_arena.proto (package proto3_arena_unittest, syntax proto3) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import type { ImportMessage } from "./unittest_import_pb.js"; -import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; -import type { Message } from "@bufbuild/protobuf"; -import type { PublicImportMessage } from "./unittest_import_public_pb.js"; - -export const fileDesc_google_protobuf_unittest_proto3_arena: GenDescFile = /*@__PURE__*/ - fileDesc("Citnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zX2FyZW5hLnByb3RvEhVwcm90bzNfYXJlbmFfdW5pdHRlc3Qi7RkKDFRlc3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIXCg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIVCg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJSChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIxLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJHChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyJS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJMChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIuLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bRJBChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yIi5wcm90bzNfYXJlbmFfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJUChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyMS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBEl8KIG9wdGlvbmFsX3VudmVyaWZpZWRfbGF6eV9tZXNzYWdlGBwgASgLMjEucHJvdG8zX2FyZW5hX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgJ4ARJRChxvcHRpb25hbF9sYXp5X2ltcG9ydF9tZXNzYWdlGHMgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VCAigBEhYKDnJlcGVhdGVkX2ludDMyGB8gAygFEhYKDnJlcGVhdGVkX2ludDY0GCAgAygDEhcKD3JlcGVhdGVkX3VpbnQzMhghIAMoDRIXCg9yZXBlYXRlZF91aW50NjQYIiADKAQSFwoPcmVwZWF0ZWRfc2ludDMyGCMgAygREhcKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoEhIYChByZXBlYXRlZF9maXhlZDMyGCUgAygHEhgKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAYSGQoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA8SGQoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBASFgoOcmVwZWF0ZWRfZmxvYXQYKSADKAISFwoPcmVwZWF0ZWRfZG91YmxlGCogAygBEhUKDXJlcGVhdGVkX2Jvb2wYKyADKAgSFwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJEhYKDnJlcGVhdGVkX2J5dGVzGC0gAygMEiIKFXByb3RvM19vcHRpb25hbF9pbnQzMhh0IAEoBUgBiAEBEiIKFXByb3RvM19vcHRpb25hbF9pbnQ2NBh1IAEoA0gCiAEBEiMKFnByb3RvM19vcHRpb25hbF91aW50MzIYdiABKA1IA4gBARIjChZwcm90bzNfb3B0aW9uYWxfdWludDY0GHcgASgESASIAQESIwoWcHJvdG8zX29wdGlvbmFsX3NpbnQzMhh4IAEoEUgFiAEBEiMKFnByb3RvM19vcHRpb25hbF9zaW50NjQYeSABKBJIBogBARIkChdwcm90bzNfb3B0aW9uYWxfZml4ZWQzMhh6IAEoB0gHiAEBEiQKF3Byb3RvM19vcHRpb25hbF9maXhlZDY0GHsgASgGSAiIAQESJQoYcHJvdG8zX29wdGlvbmFsX3NmaXhlZDMyGHwgASgPSAmIAQESJQoYcHJvdG8zX29wdGlvbmFsX3NmaXhlZDY0GH0gASgQSAqIAQESIgoVcHJvdG8zX29wdGlvbmFsX2Zsb2F0GH4gASgCSAuIAQESIwoWcHJvdG8zX29wdGlvbmFsX2RvdWJsZRh/IAEoAUgMiAEBEiIKFHByb3RvM19vcHRpb25hbF9ib29sGIABIAEoCEgNiAEBEiQKFnByb3RvM19vcHRpb25hbF9zdHJpbmcYgQEgASgJSA6IAQESIwoVcHJvdG8zX29wdGlvbmFsX2J5dGVzGIIBIAEoDEgPiAEBElIKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMjEucHJvdG8zX2FyZW5hX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEkcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIlLnByb3RvM19hcmVuYV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEkwKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMi4ucHJvdG8zX2FyZW5hX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEkEKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIiLnByb3RvM19hcmVuYV91bml0dGVzdC5Gb3JlaWduRW51bRIhChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCEhkKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBElQKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzIxLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASUQoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyMS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAGhsKDU5lc3RlZE1lc3NhZ2USCgoCYmIYASABKAUiQwoKTmVzdGVkRW51bRIICgRaRVJPEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGRCGAoWX3Byb3RvM19vcHRpb25hbF9pbnQzMkIYChZfcHJvdG8zX29wdGlvbmFsX2ludDY0QhkKF19wcm90bzNfb3B0aW9uYWxfdWludDMyQhkKF19wcm90bzNfb3B0aW9uYWxfdWludDY0QhkKF19wcm90bzNfb3B0aW9uYWxfc2ludDMyQhkKF19wcm90bzNfb3B0aW9uYWxfc2ludDY0QhoKGF9wcm90bzNfb3B0aW9uYWxfZml4ZWQzMkIaChhfcHJvdG8zX29wdGlvbmFsX2ZpeGVkNjRCGwoZX3Byb3RvM19vcHRpb25hbF9zZml4ZWQzMkIbChlfcHJvdG8zX29wdGlvbmFsX3NmaXhlZDY0QhgKFl9wcm90bzNfb3B0aW9uYWxfZmxvYXRCGQoXX3Byb3RvM19vcHRpb25hbF9kb3VibGVCFwoVX3Byb3RvM19vcHRpb25hbF9ib29sQhkKF19wcm90bzNfb3B0aW9uYWxfc3RyaW5nQhgKFl9wcm90bzNfb3B0aW9uYWxfYnl0ZXMirgMKD1Rlc3RQYWNrZWRUeXBlcxIYCgxwYWNrZWRfaW50MzIYWiADKAVCAhABEhgKDHBhY2tlZF9pbnQ2NBhbIAMoA0ICEAESGQoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAESGQoNcGFja2VkX3VpbnQ2NBhdIAMoBEICEAESGQoNcGFja2VkX3NpbnQzMhheIAMoEUICEAESGQoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAESGgoOcGFja2VkX2ZpeGVkMzIYYCADKAdCAhABEhoKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQARIbCg9wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhABEhsKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAESGAoMcGFja2VkX2Zsb2F0GGQgAygCQgIQARIZCg1wYWNrZWRfZG91YmxlGGUgAygBQgIQARIXCgtwYWNrZWRfYm9vbBhmIAMoCEICEAESOwoLcGFja2VkX2VudW0YZyADKA4yIi5wcm90bzNfYXJlbmFfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABIt8DChFUZXN0VW5wYWNrZWRUeXBlcxIaCg5yZXBlYXRlZF9pbnQzMhgBIAMoBUICEAASGgoOcmVwZWF0ZWRfaW50NjQYAiADKANCAhAAEhsKD3JlcGVhdGVkX3VpbnQzMhgDIAMoDUICEAASGwoPcmVwZWF0ZWRfdWludDY0GAQgAygEQgIQABIbCg9yZXBlYXRlZF9zaW50MzIYBSADKBFCAhAAEhsKD3JlcGVhdGVkX3NpbnQ2NBgGIAMoEkICEAASHAoQcmVwZWF0ZWRfZml4ZWQzMhgHIAMoB0ICEAASHAoQcmVwZWF0ZWRfZml4ZWQ2NBgIIAMoBkICEAASHQoRcmVwZWF0ZWRfc2ZpeGVkMzIYCSADKA9CAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDY0GAogAygQQgIQABIaCg5yZXBlYXRlZF9mbG9hdBgLIAMoAkICEAASGwoPcmVwZWF0ZWRfZG91YmxlGAwgAygBQgIQABIZCg1yZXBlYXRlZF9ib29sGA0gAygIQgIQABJQChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgOIAMoDjIuLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAihgIKEk5lc3RlZFRlc3RBbGxUeXBlcxI4CgVjaGlsZBgBIAEoCzIpLnByb3RvM19hcmVuYV91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXMSNAoHcGF5bG9hZBgCIAEoCzIjLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXMSQQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyKS5wcm90bzNfYXJlbmFfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEj0KDGxhenlfcGF5bG9hZBgEIAEoCzIjLnByb3RvM19hcmVuYV91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigBIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSJZChdUZXN0UGlja2xlTmVzdGVkTWVzc2FnZRo+Cg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGiEKE05lc3RlZE5lc3RlZE1lc3NhZ2USCgoCY2MYASABKAUqUgoLRm9yZWlnbkVudW0SEAoMRk9SRUlHTl9aRVJPEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAZCA/gBAWIGcHJvdG8z", [fileDesc_google_protobuf_unittest_import]); - -/** - * This proto includes every type of field in both singular and repeated - * forms. - * - * @generated from message proto3_arena_unittest.TestAllTypes - */ -export type TestAllTypes = Message<"proto3_arena_unittest.TestAllTypes"> & { - /** - * Singular - * - * @generated from field: int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_arena_unittest.ForeignMessage optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_import_message = 20; - */ - optionalImportMessage?: ImportMessage; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypes_NestedEnum; - - /** - * @generated from field: proto3_arena_unittest.ForeignEnum optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnum; - - /** - * @generated from field: string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessage; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage optional_unverified_lazy_message = 28; - */ - optionalUnverifiedLazyMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_lazy_import_message = 115; - */ - optionalLazyImportMessage?: ImportMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * Optional - * - * @generated from field: optional int32 proto3_optional_int32 = 116; - */ - proto3OptionalInt32?: number; - - /** - * @generated from field: optional int64 proto3_optional_int64 = 117; - */ - proto3OptionalInt64?: bigint; - - /** - * @generated from field: optional uint32 proto3_optional_uint32 = 118; - */ - proto3OptionalUint32?: number; - - /** - * @generated from field: optional uint64 proto3_optional_uint64 = 119; - */ - proto3OptionalUint64?: bigint; - - /** - * @generated from field: optional sint32 proto3_optional_sint32 = 120; - */ - proto3OptionalSint32?: number; - - /** - * @generated from field: optional sint64 proto3_optional_sint64 = 121; - */ - proto3OptionalSint64?: bigint; - - /** - * @generated from field: optional fixed32 proto3_optional_fixed32 = 122; - */ - proto3OptionalFixed32?: number; - - /** - * @generated from field: optional fixed64 proto3_optional_fixed64 = 123; - */ - proto3OptionalFixed64?: bigint; - - /** - * @generated from field: optional sfixed32 proto3_optional_sfixed32 = 124; - */ - proto3OptionalSfixed32?: number; - - /** - * @generated from field: optional sfixed64 proto3_optional_sfixed64 = 125; - */ - proto3OptionalSfixed64?: bigint; - - /** - * @generated from field: optional float proto3_optional_float = 126; - */ - proto3OptionalFloat?: number; - - /** - * @generated from field: optional double proto3_optional_double = 127; - */ - proto3OptionalDouble?: number; - - /** - * @generated from field: optional bool proto3_optional_bool = 128; - */ - proto3OptionalBool?: boolean; - - /** - * @generated from field: optional string proto3_optional_string = 129; - */ - proto3OptionalString?: string; - - /** - * @generated from field: optional bytes proto3_optional_bytes = 130; - */ - proto3OptionalBytes?: Uint8Array; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from field: repeated proto3_arena_unittest.ForeignMessage repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessage[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessage[]; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; - - /** - * @generated from field: repeated proto3_arena_unittest.ForeignEnum repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnum[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from oneof proto3_arena_unittest.TestAllTypes.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: proto3_arena_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypes_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message proto3_arena_unittest.TestAllTypes. -// Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export const TestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0); - -/** - * @generated from message proto3_arena_unittest.TestAllTypes.NestedMessage - */ -export type TestAllTypes_NestedMessage = Message<"proto3_arena_unittest.TestAllTypes.NestedMessage"> & { - /** - * The field name "b" fails to compile in proto1 because it conflicts with - * a local variable named "b" in one of the generated methods. Doh. - * This file needs to compile in proto1 to test backwards-compatibility. - * - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_arena_unittest.TestAllTypes.NestedMessage. -// Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export const TestAllTypes_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0, 0); - -/** - * @generated from enum proto3_arena_unittest.TestAllTypes.NestedEnum - */ -export enum TestAllTypes_NestedEnum { - /** - * @generated from enum value: ZERO = 0; - */ - ZERO = 0, - - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * Intentionally negative. - * - * @generated from enum value: NEG = -1; - */ - NEG = -1, -} - -// Describes the enum proto3_arena_unittest.TestAllTypes.NestedEnum. -export const TestAllTypes_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0, 0); - -/** - * @generated from message proto3_arena_unittest.TestPackedTypes - */ -export type TestPackedTypes = Message<"proto3_arena_unittest.TestPackedTypes"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_unittest.ForeignEnum packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnum[]; -}; - -// Describes the message proto3_arena_unittest.TestPackedTypes. -// Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export const TestPackedTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 1); - -/** - * Explicitly set packed to false - * - * @generated from message proto3_arena_unittest.TestUnpackedTypes - */ -export type TestUnpackedTypes = Message<"proto3_arena_unittest.TestUnpackedTypes"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 1 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 2 [packed = false]; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 3 [packed = false]; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 4 [packed = false]; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 5 [packed = false]; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 6 [packed = false]; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 7 [packed = false]; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 8 [packed = false]; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 9 [packed = false]; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 10 [packed = false]; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 11 [packed = false]; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 12 [packed = false]; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 13 [packed = false]; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated proto3_arena_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false]; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; -}; - -// Describes the message proto3_arena_unittest.TestUnpackedTypes. -// Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export const TestUnpackedTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 2); - -/** - * This proto includes a recursively nested message. - * - * @generated from message proto3_arena_unittest.NestedTestAllTypes - */ -export type NestedTestAllTypes = Message<"proto3_arena_unittest.NestedTestAllTypes"> & { - /** - * @generated from field: proto3_arena_unittest.NestedTestAllTypes child = 1; - */ - child?: NestedTestAllTypes; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes payload = 2; - */ - payload?: TestAllTypes; - - /** - * @generated from field: repeated proto3_arena_unittest.NestedTestAllTypes repeated_child = 3; - */ - repeatedChild: NestedTestAllTypes[]; - - /** - * @generated from field: proto3_arena_unittest.TestAllTypes lazy_payload = 4; - */ - lazyPayload?: TestAllTypes; -}; - -// Describes the message proto3_arena_unittest.NestedTestAllTypes. -// Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export const NestedTestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 3); - -/** - * Define these after TestAllTypes to make sure the compiler can handle - * that. - * - * @generated from message proto3_arena_unittest.ForeignMessage - */ -export type ForeignMessage = Message<"proto3_arena_unittest.ForeignMessage"> & { - /** - * @generated from field: int32 c = 1; - */ - c: number; -}; - -// Describes the message proto3_arena_unittest.ForeignMessage. -// Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export const ForeignMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 4); - -/** - * TestEmptyMessage is used to test behavior of unknown fields. - * - * @generated from message proto3_arena_unittest.TestEmptyMessage - */ -export type TestEmptyMessage = Message<"proto3_arena_unittest.TestEmptyMessage"> & { -}; - -// Describes the message proto3_arena_unittest.TestEmptyMessage. -// Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export const TestEmptyMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 5); - -/** - * Needed for a Python test. - * - * @generated from message proto3_arena_unittest.TestPickleNestedMessage - */ -export type TestPickleNestedMessage = Message<"proto3_arena_unittest.TestPickleNestedMessage"> & { -}; - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage. -// Use `create(TestPickleNestedMessageDesc)` to create a new TestPickleNestedMessage. -export const TestPickleNestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 6); - -/** - * @generated from message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage - */ -export type TestPickleNestedMessage_NestedMessage = Message<"proto3_arena_unittest.TestPickleNestedMessage.NestedMessage"> & { - /** - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage. -// Use `create(TestPickleNestedMessage_NestedMessageDesc)` to create a new TestPickleNestedMessage_NestedMessage. -export const TestPickleNestedMessage_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 6, 0); - -/** - * @generated from message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage.NestedNestedMessage - */ -export type TestPickleNestedMessage_NestedMessage_NestedNestedMessage = Message<"proto3_arena_unittest.TestPickleNestedMessage.NestedMessage.NestedNestedMessage"> & { - /** - * @generated from field: int32 cc = 1; - */ - cc: number; -}; - -// Describes the message proto3_arena_unittest.TestPickleNestedMessage.NestedMessage.NestedNestedMessage. -// Use `create(TestPickleNestedMessage_NestedMessage_NestedNestedMessageDesc)` to create a new TestPickleNestedMessage_NestedMessage_NestedNestedMessage. -export const TestPickleNestedMessage_NestedMessage_NestedNestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_arena, 6, 0, 0); - -/** - * @generated from enum proto3_arena_unittest.ForeignEnum - */ -export enum ForeignEnum { - /** - * @generated from enum value: FOREIGN_ZERO = 0; - */ - FOREIGN_ZERO = 0, - - /** - * @generated from enum value: FOREIGN_FOO = 4; - */ - FOREIGN_FOO = 4, - - /** - * @generated from enum value: FOREIGN_BAR = 5; - */ - FOREIGN_BAR = 5, - - /** - * @generated from enum value: FOREIGN_BAZ = 6; - */ - FOREIGN_BAZ = 6, -} - -// Describes the enum proto3_arena_unittest.ForeignEnum. -export const ForeignEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_arena, 0); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_lite_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_lite_pb.ts deleted file mode 100644 index 68a24515f..000000000 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_lite_pb.ts +++ /dev/null @@ -1,610 +0,0 @@ -// Copyright 2021-2024 Buf Technologies, Inc. -// -// 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. - -// @generated by protoc-gen-es v1.8.0 with parameter "ts_nocheck=false,target=ts" -// @generated from file google/protobuf/unittest_proto3_lite.proto (package proto3_lite_unittest, syntax proto3) -/* eslint-disable */ - -import type { GenDescEnum, GenDescFile, GenDescMessage } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1"; -import type { ImportMessage } from "./unittest_import_pb.js"; -import { fileDesc_google_protobuf_unittest_import } from "./unittest_import_pb.js"; -import type { Message } from "@bufbuild/protobuf"; -import type { PublicImportMessage } from "./unittest_import_public_pb.js"; - -export const fileDesc_google_protobuf_unittest_proto3_lite: GenDescFile = /*@__PURE__*/ - fileDesc("Cipnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zX2xpdGUucHJvdG8SFHByb3RvM19saXRlX3VuaXR0ZXN0IusQCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoOb3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgNEhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIYBSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUYDCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJpbmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSUQoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJGChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyJC5wcm90bzNfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEksKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMi0ucHJvdG8zX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SQAoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiEucHJvdG8zX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZRJTChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSUQoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJGChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyJC5wcm90bzNfbGl0ZV91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEksKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMi0ucHJvdG8zX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SQAoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMiEucHJvdG8zX2xpdGVfdW5pdHRlc3QuRm9yZWlnbkVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJTChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoMb25lb2ZfdWludDMyGG8gASgNSAASUAoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyMC5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBSJDCgpOZXN0ZWRFbnVtEggKBFpFUk8QABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCKtAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI6CgtwYWNrZWRfZW51bRhnIAMoDjIhLnByb3RvM19saXRlX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLeAwoRVGVzdFVucGFja2VkVHlwZXMSGgoOcmVwZWF0ZWRfaW50MzIYASADKAVCAhAAEhoKDnJlcGVhdGVkX2ludDY0GAIgAygDQgIQABIbCg9yZXBlYXRlZF91aW50MzIYAyADKA1CAhAAEhsKD3JlcGVhdGVkX3VpbnQ2NBgEIAMoBEICEAASGwoPcmVwZWF0ZWRfc2ludDMyGAUgAygRQgIQABIbCg9yZXBlYXRlZF9zaW50NjQYBiADKBJCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkMzIYByADKAdCAhAAEhwKEHJlcGVhdGVkX2ZpeGVkNjQYCCADKAZCAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDMyGAkgAygPQgIQABIdChFyZXBlYXRlZF9zZml4ZWQ2NBgKIAMoEEICEAASGgoOcmVwZWF0ZWRfZmxvYXQYCyADKAJCAhAAEhsKD3JlcGVhdGVkX2RvdWJsZRgMIAMoAUICEAASGQoNcmVwZWF0ZWRfYm9vbBgNIAMoCEICEAASTwoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YDiADKA4yLS5wcm90bzNfbGl0ZV91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAiggEKEk5lc3RlZFRlc3RBbGxUeXBlcxI3CgVjaGlsZBgBIAEoCzIoLnByb3RvM19saXRlX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxIzCgdwYXlsb2FkGAIgASgLMiIucHJvdG8zX2xpdGVfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSpSCgtGb3JlaWduRW51bRIQCgxGT1JFSUdOX1pFUk8QABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBkICSANiBnByb3RvMw", [fileDesc_google_protobuf_unittest_import]); - -/** - * This proto includes every type of field in both singular and repeated - * forms. - * - * @generated from message proto3_lite_unittest.TestAllTypes - */ -export type TestAllTypes = Message<"proto3_lite_unittest.TestAllTypes"> & { - /** - * Singular - * - * @generated from field: int32 optional_int32 = 1; - */ - optionalInt32: number; - - /** - * @generated from field: int64 optional_int64 = 2; - */ - optionalInt64: bigint; - - /** - * @generated from field: uint32 optional_uint32 = 3; - */ - optionalUint32: number; - - /** - * @generated from field: uint64 optional_uint64 = 4; - */ - optionalUint64: bigint; - - /** - * @generated from field: sint32 optional_sint32 = 5; - */ - optionalSint32: number; - - /** - * @generated from field: sint64 optional_sint64 = 6; - */ - optionalSint64: bigint; - - /** - * @generated from field: fixed32 optional_fixed32 = 7; - */ - optionalFixed32: number; - - /** - * @generated from field: fixed64 optional_fixed64 = 8; - */ - optionalFixed64: bigint; - - /** - * @generated from field: sfixed32 optional_sfixed32 = 9; - */ - optionalSfixed32: number; - - /** - * @generated from field: sfixed64 optional_sfixed64 = 10; - */ - optionalSfixed64: bigint; - - /** - * @generated from field: float optional_float = 11; - */ - optionalFloat: number; - - /** - * @generated from field: double optional_double = 12; - */ - optionalDouble: number; - - /** - * @generated from field: bool optional_bool = 13; - */ - optionalBool: boolean; - - /** - * @generated from field: string optional_string = 14; - */ - optionalString: string; - - /** - * @generated from field: bytes optional_bytes = 15; - */ - optionalBytes: Uint8Array; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedMessage optional_nested_message = 18; - */ - optionalNestedMessage?: TestAllTypes_NestedMessage; - - /** - * @generated from field: proto3_lite_unittest.ForeignMessage optional_foreign_message = 19; - */ - optionalForeignMessage?: ForeignMessage; - - /** - * @generated from field: protobuf_unittest_import.ImportMessage optional_import_message = 20; - */ - optionalImportMessage?: ImportMessage; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21; - */ - optionalNestedEnum: TestAllTypes_NestedEnum; - - /** - * @generated from field: proto3_lite_unittest.ForeignEnum optional_foreign_enum = 22; - */ - optionalForeignEnum: ForeignEnum; - - /** - * @generated from field: string optional_string_piece = 24; - */ - optionalStringPiece: string; - - /** - * @generated from field: string optional_cord = 25; - */ - optionalCord: string; - - /** - * Defined in unittest_import_public.proto - * - * @generated from field: protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26; - */ - optionalPublicImportMessage?: PublicImportMessage; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27; - */ - optionalLazyMessage?: TestAllTypes_NestedMessage; - - /** - * Repeated - * - * @generated from field: repeated int32 repeated_int32 = 31; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 32; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 33; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 34; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 35; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 36; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 37; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 38; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 39; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 40; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 41; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 42; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 43; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated string repeated_string = 44; - */ - repeatedString: string[]; - - /** - * @generated from field: repeated bytes repeated_bytes = 45; - */ - repeatedBytes: Uint8Array[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48; - */ - repeatedNestedMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from field: repeated proto3_lite_unittest.ForeignMessage repeated_foreign_message = 49; - */ - repeatedForeignMessage: ForeignMessage[]; - - /** - * @generated from field: repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50; - */ - repeatedImportMessage: ImportMessage[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; - - /** - * @generated from field: repeated proto3_lite_unittest.ForeignEnum repeated_foreign_enum = 52; - */ - repeatedForeignEnum: ForeignEnum[]; - - /** - * @generated from field: repeated string repeated_string_piece = 54; - */ - repeatedStringPiece: string[]; - - /** - * @generated from field: repeated string repeated_cord = 55; - */ - repeatedCord: string[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57; - */ - repeatedLazyMessage: TestAllTypes_NestedMessage[]; - - /** - * @generated from oneof proto3_lite_unittest.TestAllTypes.oneof_field - */ - oneofField: { - /** - * @generated from field: uint32 oneof_uint32 = 111; - */ - value: number; - case: "oneofUint32"; - } | { - /** - * @generated from field: proto3_lite_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112; - */ - value: TestAllTypes_NestedMessage; - case: "oneofNestedMessage"; - } | { - /** - * @generated from field: string oneof_string = 113; - */ - value: string; - case: "oneofString"; - } | { - /** - * @generated from field: bytes oneof_bytes = 114; - */ - value: Uint8Array; - case: "oneofBytes"; - } | { case: undefined; value?: undefined }; -}; - -// Describes the message proto3_lite_unittest.TestAllTypes. -// Use `create(TestAllTypesDesc)` to create a new TestAllTypes. -export const TestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0); - -/** - * @generated from message proto3_lite_unittest.TestAllTypes.NestedMessage - */ -export type TestAllTypes_NestedMessage = Message<"proto3_lite_unittest.TestAllTypes.NestedMessage"> & { - /** - * The field name "b" fails to compile in proto1 because it conflicts with - * a local variable named "b" in one of the generated methods. Doh. - * This file needs to compile in proto1 to test backwards-compatibility. - * - * @generated from field: int32 bb = 1; - */ - bb: number; -}; - -// Describes the message proto3_lite_unittest.TestAllTypes.NestedMessage. -// Use `create(TestAllTypes_NestedMessageDesc)` to create a new TestAllTypes_NestedMessage. -export const TestAllTypes_NestedMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0, 0); - -/** - * @generated from enum proto3_lite_unittest.TestAllTypes.NestedEnum - */ -export enum TestAllTypes_NestedEnum { - /** - * @generated from enum value: ZERO = 0; - */ - ZERO = 0, - - /** - * @generated from enum value: FOO = 1; - */ - FOO = 1, - - /** - * @generated from enum value: BAR = 2; - */ - BAR = 2, - - /** - * @generated from enum value: BAZ = 3; - */ - BAZ = 3, - - /** - * Intentionally negative. - * - * @generated from enum value: NEG = -1; - */ - NEG = -1, -} - -// Describes the enum proto3_lite_unittest.TestAllTypes.NestedEnum. -export const TestAllTypes_NestedEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0, 0); - -/** - * @generated from message proto3_lite_unittest.TestPackedTypes - */ -export type TestPackedTypes = Message<"proto3_lite_unittest.TestPackedTypes"> & { - /** - * @generated from field: repeated int32 packed_int32 = 90 [packed = true]; - */ - packedInt32: number[]; - - /** - * @generated from field: repeated int64 packed_int64 = 91 [packed = true]; - */ - packedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 packed_uint32 = 92 [packed = true]; - */ - packedUint32: number[]; - - /** - * @generated from field: repeated uint64 packed_uint64 = 93 [packed = true]; - */ - packedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 packed_sint32 = 94 [packed = true]; - */ - packedSint32: number[]; - - /** - * @generated from field: repeated sint64 packed_sint64 = 95 [packed = true]; - */ - packedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 packed_fixed32 = 96 [packed = true]; - */ - packedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 packed_fixed64 = 97 [packed = true]; - */ - packedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 packed_sfixed32 = 98 [packed = true]; - */ - packedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 packed_sfixed64 = 99 [packed = true]; - */ - packedSfixed64: bigint[]; - - /** - * @generated from field: repeated float packed_float = 100 [packed = true]; - */ - packedFloat: number[]; - - /** - * @generated from field: repeated double packed_double = 101 [packed = true]; - */ - packedDouble: number[]; - - /** - * @generated from field: repeated bool packed_bool = 102 [packed = true]; - */ - packedBool: boolean[]; - - /** - * @generated from field: repeated proto3_lite_unittest.ForeignEnum packed_enum = 103 [packed = true]; - */ - packedEnum: ForeignEnum[]; -}; - -// Describes the message proto3_lite_unittest.TestPackedTypes. -// Use `create(TestPackedTypesDesc)` to create a new TestPackedTypes. -export const TestPackedTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 1); - -/** - * Explicitly set packed to false - * - * @generated from message proto3_lite_unittest.TestUnpackedTypes - */ -export type TestUnpackedTypes = Message<"proto3_lite_unittest.TestUnpackedTypes"> & { - /** - * @generated from field: repeated int32 repeated_int32 = 1 [packed = false]; - */ - repeatedInt32: number[]; - - /** - * @generated from field: repeated int64 repeated_int64 = 2 [packed = false]; - */ - repeatedInt64: bigint[]; - - /** - * @generated from field: repeated uint32 repeated_uint32 = 3 [packed = false]; - */ - repeatedUint32: number[]; - - /** - * @generated from field: repeated uint64 repeated_uint64 = 4 [packed = false]; - */ - repeatedUint64: bigint[]; - - /** - * @generated from field: repeated sint32 repeated_sint32 = 5 [packed = false]; - */ - repeatedSint32: number[]; - - /** - * @generated from field: repeated sint64 repeated_sint64 = 6 [packed = false]; - */ - repeatedSint64: bigint[]; - - /** - * @generated from field: repeated fixed32 repeated_fixed32 = 7 [packed = false]; - */ - repeatedFixed32: number[]; - - /** - * @generated from field: repeated fixed64 repeated_fixed64 = 8 [packed = false]; - */ - repeatedFixed64: bigint[]; - - /** - * @generated from field: repeated sfixed32 repeated_sfixed32 = 9 [packed = false]; - */ - repeatedSfixed32: number[]; - - /** - * @generated from field: repeated sfixed64 repeated_sfixed64 = 10 [packed = false]; - */ - repeatedSfixed64: bigint[]; - - /** - * @generated from field: repeated float repeated_float = 11 [packed = false]; - */ - repeatedFloat: number[]; - - /** - * @generated from field: repeated double repeated_double = 12 [packed = false]; - */ - repeatedDouble: number[]; - - /** - * @generated from field: repeated bool repeated_bool = 13 [packed = false]; - */ - repeatedBool: boolean[]; - - /** - * @generated from field: repeated proto3_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false]; - */ - repeatedNestedEnum: TestAllTypes_NestedEnum[]; -}; - -// Describes the message proto3_lite_unittest.TestUnpackedTypes. -// Use `create(TestUnpackedTypesDesc)` to create a new TestUnpackedTypes. -export const TestUnpackedTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 2); - -/** - * This proto includes a recursively nested message. - * - * @generated from message proto3_lite_unittest.NestedTestAllTypes - */ -export type NestedTestAllTypes = Message<"proto3_lite_unittest.NestedTestAllTypes"> & { - /** - * @generated from field: proto3_lite_unittest.NestedTestAllTypes child = 1; - */ - child?: NestedTestAllTypes; - - /** - * @generated from field: proto3_lite_unittest.TestAllTypes payload = 2; - */ - payload?: TestAllTypes; -}; - -// Describes the message proto3_lite_unittest.NestedTestAllTypes. -// Use `create(NestedTestAllTypesDesc)` to create a new NestedTestAllTypes. -export const NestedTestAllTypesDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 3); - -/** - * Define these after TestAllTypes to make sure the compiler can handle - * that. - * - * @generated from message proto3_lite_unittest.ForeignMessage - */ -export type ForeignMessage = Message<"proto3_lite_unittest.ForeignMessage"> & { - /** - * @generated from field: int32 c = 1; - */ - c: number; -}; - -// Describes the message proto3_lite_unittest.ForeignMessage. -// Use `create(ForeignMessageDesc)` to create a new ForeignMessage. -export const ForeignMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 4); - -/** - * TestEmptyMessage is used to test behavior of unknown fields. - * - * @generated from message proto3_lite_unittest.TestEmptyMessage - */ -export type TestEmptyMessage = Message<"proto3_lite_unittest.TestEmptyMessage"> & { -}; - -// Describes the message proto3_lite_unittest.TestEmptyMessage. -// Use `create(TestEmptyMessageDesc)` to create a new TestEmptyMessage. -export const TestEmptyMessageDesc: GenDescMessage = /*@__PURE__*/ - messageDesc(fileDesc_google_protobuf_unittest_proto3_lite, 5); - -/** - * @generated from enum proto3_lite_unittest.ForeignEnum - */ -export enum ForeignEnum { - /** - * @generated from enum value: FOREIGN_ZERO = 0; - */ - FOREIGN_ZERO = 0, - - /** - * @generated from enum value: FOREIGN_FOO = 4; - */ - FOREIGN_FOO = 4, - - /** - * @generated from enum value: FOREIGN_BAR = 5; - */ - FOREIGN_BAR = 5, - - /** - * @generated from enum value: FOREIGN_BAZ = 6; - */ - FOREIGN_BAZ = 6, -} - -// Describes the enum proto3_lite_unittest.ForeignEnum. -export const ForeignEnumDesc: GenDescEnum = /*@__PURE__*/ - enumDesc(fileDesc_google_protobuf_unittest_proto3_lite, 0); - diff --git a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_pb.ts b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_pb.ts index 9e87cc7fd..b0c0de328 100644 --- a/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_pb.ts +++ b/packages/protobuf-test/src/gen/ts/google/protobuf/unittest_proto3_pb.ts @@ -24,7 +24,7 @@ import type { Message } from "@bufbuild/protobuf"; import type { PublicImportMessage } from "./unittest_import_public_pb.js"; export const fileDesc_google_protobuf_unittest_proto3: GenDescFile = /*@__PURE__*/ - fileDesc("CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zLnByb3RvEg9wcm90bzNfdW5pdHRlc3QigxIKDFRlc3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIXCg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIVCg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJRChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgBiAEBEkEKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIfLnByb3RvM191bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEkYKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMigucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEjsKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIcLnByb3RvM191bml0dGVzdC5Gb3JlaWduRW51bRIhChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCEhkKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBElUKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlEk4KFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWQogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAngBElEKHG9wdGlvbmFsX2xhenlfaW1wb3J0X21lc3NhZ2UYcyABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSTAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQQoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMh8ucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEkgKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2USRgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKC5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SOwoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMhwucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESTgoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMisucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoARIWCgxvbmVvZl91aW50MzIYbyABKA1IABJLChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAAaGwoNTmVzdGVkTWVzc2FnZRIKCgJiYhgBIAEoBSJDCgpOZXN0ZWRFbnVtEggKBFpFUk8QABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZEIaChhfb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UiqAMKD1Rlc3RQYWNrZWRUeXBlcxIYCgxwYWNrZWRfaW50MzIYWiADKAVCAhABEhgKDHBhY2tlZF9pbnQ2NBhbIAMoA0ICEAESGQoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAESGQoNcGFja2VkX3VpbnQ2NBhdIAMoBEICEAESGQoNcGFja2VkX3NpbnQzMhheIAMoEUICEAESGQoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAESGgoOcGFja2VkX2ZpeGVkMzIYYCADKAdCAhABEhoKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQARIbCg9wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhABEhsKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAESGAoMcGFja2VkX2Zsb2F0GGQgAygCQgIQARIZCg1wYWNrZWRfZG91YmxlGGUgAygBQgIQARIXCgtwYWNrZWRfYm9vbBhmIAMoCEICEAESNQoLcGFja2VkX2VudW0YZyADKA4yHC5wcm90bzNfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABItkDChFUZXN0VW5wYWNrZWRUeXBlcxIaCg5yZXBlYXRlZF9pbnQzMhgBIAMoBUICEAASGgoOcmVwZWF0ZWRfaW50NjQYAiADKANCAhAAEhsKD3JlcGVhdGVkX3VpbnQzMhgDIAMoDUICEAASGwoPcmVwZWF0ZWRfdWludDY0GAQgAygEQgIQABIbCg9yZXBlYXRlZF9zaW50MzIYBSADKBFCAhAAEhsKD3JlcGVhdGVkX3NpbnQ2NBgGIAMoEkICEAASHAoQcmVwZWF0ZWRfZml4ZWQzMhgHIAMoB0ICEAASHAoQcmVwZWF0ZWRfZml4ZWQ2NBgIIAMoBkICEAASHQoRcmVwZWF0ZWRfc2ZpeGVkMzIYCSADKA9CAhAAEh0KEXJlcGVhdGVkX3NmaXhlZDY0GAogAygQQgIQABIaCg5yZXBlYXRlZF9mbG9hdBgLIAMoAkICEAASGwoPcmVwZWF0ZWRfZG91YmxlGAwgAygBQgIQABIZCg1yZXBlYXRlZF9ib29sGA0gAygIQgIQABJKChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgOIAMoDjIoLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUICEAAieAoSTmVzdGVkVGVzdEFsbFR5cGVzEjIKBWNoaWxkGAEgASgLMiMucHJvdG8zX3VuaXR0ZXN0Lk5lc3RlZFRlc3RBbGxUeXBlcxIuCgdwYXlsb2FkGAIgASgLMh0ucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyIbCg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIhIKEFRlc3RFbXB0eU1lc3NhZ2UiKQoUVGVzdE1lc3NhZ2VXaXRoRHVtbXkSEQoFZHVtbXkY/////wEgASgIIoUBCgpUZXN0T25lb2YyEjoKCGZvb19lbnVtGAYgASgOMiYucHJvdG8zX3VuaXR0ZXN0LlRlc3RPbmVvZjIuTmVzdGVkRW51bUgAIjQKCk5lc3RlZEVudW0SCwoHVU5LTk9XThAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQgUKA2ZvbypSCgtGb3JlaWduRW51bRIQCgxGT1JFSUdOX1pFUk8QABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBkICSAFiBnByb3RvMw", [fileDesc_google_protobuf_unittest_import]); + fileDesc("CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfcHJvdG8zLnByb3RvEg9wcm90bzNfdW5pdHRlc3Qi/xEKDFRlc3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIXCg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIVCg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJRChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgBiAEBEkEKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIfLnByb3RvM191bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlEkYKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMigucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEjsKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIcLnByb3RvM191bml0dGVzdC5Gb3JlaWduRW51bRIhChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCEhkKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBElUKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlEk4KFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzIrLnByb3RvM191bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESWQogb3B0aW9uYWxfdW52ZXJpZmllZF9sYXp5X21lc3NhZ2UYHCABKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAngBElEKHG9wdGlvbmFsX2xhenlfaW1wb3J0X21lc3NhZ2UYcyABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZUICKAESFgoOcmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0ZXMYLSADKAwSTAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyKy5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQQoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMh8ucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlEkgKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2USRgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKC5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SOwoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMhwucHJvdG8zX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESSgoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMisucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEhYKDG9uZW9mX3VpbnQzMhhvIAEoDUgAEksKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMisucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0ZXMYciABKAxIABobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFIkMKCk5lc3RlZEVudW0SCAoEWkVSTxAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD///////////8BQg0KC29uZW9mX2ZpZWxkQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZSKoAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI1CgtwYWNrZWRfZW51bRhnIAMoDjIcLnByb3RvM191bml0dGVzdC5Gb3JlaWduRW51bUICEAEi2QMKEVRlc3RVbnBhY2tlZFR5cGVzEhoKDnJlcGVhdGVkX2ludDMyGAEgAygFQgIQABIaCg5yZXBlYXRlZF9pbnQ2NBgCIAMoA0ICEAASGwoPcmVwZWF0ZWRfdWludDMyGAMgAygNQgIQABIbCg9yZXBlYXRlZF91aW50NjQYBCADKARCAhAAEhsKD3JlcGVhdGVkX3NpbnQzMhgFIAMoEUICEAASGwoPcmVwZWF0ZWRfc2ludDY0GAYgAygSQgIQABIcChByZXBlYXRlZF9maXhlZDMyGAcgAygHQgIQABIcChByZXBlYXRlZF9maXhlZDY0GAggAygGQgIQABIdChFyZXBlYXRlZF9zZml4ZWQzMhgJIAMoD0ICEAASHQoRcmVwZWF0ZWRfc2ZpeGVkNjQYCiADKBBCAhAAEhoKDnJlcGVhdGVkX2Zsb2F0GAsgAygCQgIQABIbCg9yZXBlYXRlZF9kb3VibGUYDCADKAFCAhAAEhkKDXJlcGVhdGVkX2Jvb2wYDSADKAhCAhAAEkoKFHJlcGVhdGVkX25lc3RlZF9lbnVtGA4gAygOMigucHJvdG8zX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtQgIQACJ4ChJOZXN0ZWRUZXN0QWxsVHlwZXMSMgoFY2hpbGQYASABKAsyIy5wcm90bzNfdW5pdHRlc3QuTmVzdGVkVGVzdEFsbFR5cGVzEi4KB3BheWxvYWQYAiABKAsyHS5wcm90bzNfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUiEgoQVGVzdEVtcHR5TWVzc2FnZSIpChRUZXN0TWVzc2FnZVdpdGhEdW1teRIRCgVkdW1teRj/////ASABKAgihQEKClRlc3RPbmVvZjISOgoIZm9vX2VudW0YBiABKA4yJi5wcm90bzNfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSAAiNAoKTmVzdGVkRW51bRILCgdVTktOT1dOEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEANCBQoDZm9vKlIKC0ZvcmVpZ25FbnVtEhAKDEZPUkVJR05fWkVSTxAAEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGQgJIAWIGcHJvdG8z", [fileDesc_google_protobuf_unittest_import]); /** * This proto includes every type of field in both singular and repeated diff --git a/packages/protobuf/scripts/bootstrap-inject.mjs b/packages/protobuf/scripts/bootstrap-inject.mjs index 4832fc921..0ff186590 100644 --- a/packages/protobuf/scripts/bootstrap-inject.mjs +++ b/packages/protobuf/scripts/bootstrap-inject.mjs @@ -158,7 +158,12 @@ async function processFile(filePath, content, descriptorProto, upstream) { for (const def of featureSetDefaults.defaults) { lines.push(` // ${Edition[def.edition]}`); lines.push(` ${def.edition}: {`); - const r = reflect(FeatureSetDesc, def.features); + const r = reflect( + FeatureSetDesc, + featureSetHasAllSet(def.overridableFeatures) + ? def.overridableFeatures + : def.fixedFeatures, + ); for (const f of r.fields) { if (f.fieldKind !== "enum") { throw new Error( @@ -231,31 +236,50 @@ async function compileDefaults(upstream, minimumEdition, maximumEdition) { FeatureSetDefaultsDesc, featureSetDefaultsBytes, ); - const hasUnknownFields = - featureSetDefaults.$unknown !== undefined && - featureSetDefaults.$unknown.length > 0; - if ( - hasUnknownFields || - featureSetDefaults.minimumEdition === 0 || - featureSetDefaults.maximumEdition === 0 || - featureSetDefaults.maximumEdition < featureSetDefaults.minimumEdition || - featureSetDefaults.defaults.some((d) => d.edition === 0) || - featureSetDefaults.defaults.some( - (d) => - !d.features || - d.features.fieldPresence === 0 || - d.features.enumType === 0 || - d.features.repeatedFieldEncoding === 0 || - d.features.utf8Validation === 0 || - d.features.messageEncoding === 0 || - d.features.jsonFormat === 0, - ) - ) { + if (!validateDefaults(featureSetDefaults)) { throw new Error(`invalid ${FeatureSetDefaultsDesc.typeName}`); } return featureSetDefaults; } +/** + * @param {import("@bufbuild/protobuf/wkt").FeatureSetDefaults} def + * @returns {boolean} + */ +function validateDefaults(def) { + const hasUnknownFields = + def.$unknown !== undefined && def.$unknown.length > 0; + const hasValidEditionRange = + def.minimumEdition !== 0 && + def.maximumEdition !== 0 && + def.maximumEdition >= def.minimumEdition; + const hasValidDefaults = def.defaults.every((d) => { + if (d.edition === 0) { + return false; + } + return ( + featureSetHasAllSet(d.fixedFeatures) || + featureSetHasAllSet(d.overridableFeatures) + ); + }); + return !hasUnknownFields && hasValidEditionRange && hasValidDefaults; +} + +/** + * @param {import("@bufbuild/protobuf/wkt").FeatureSet} featureSet + */ +function featureSetHasAllSet(featureSet) { + return ( + !!featureSet && + featureSet.fieldPresence !== 0 && + featureSet.enumType !== 0 && + featureSet.repeatedFieldEncoding !== 0 && + featureSet.utf8Validation !== 0 && + featureSet.messageEncoding !== 0 && + featureSet.jsonFormat !== 0 + ); +} + /** * @param {UpstreamProtobuf} upstream * @return {Promise} diff --git a/packages/protobuf/src/reflect/registry.ts b/packages/protobuf/src/reflect/registry.ts index f351ae408..cdff2b83d 100644 --- a/packages/protobuf/src/reflect/registry.ts +++ b/packages/protobuf/src/reflect/registry.ts @@ -402,7 +402,7 @@ const OPEN: FeatureSet_EnumType.OPEN = 1; // prettier-ignore // bootstrap-inject defaults: EDITION_PROTO2 to EDITION_2023: export const minimumEdition: SupportedEdition = $minimumEdition, maximumEdition: SupportedEdition = $maximumEdition; -// generated from protoc v26.1 +// generated from protoc v27.0-rc1 export const minimumEdition: SupportedEdition = 998, maximumEdition: SupportedEdition = 1000; const featureDefaults = { // EDITION_PROTO2 diff --git a/packages/protobuf/src/wkt/gen/google/protobuf/descriptor_pb.ts b/packages/protobuf/src/wkt/gen/google/protobuf/descriptor_pb.ts index 8abba6362..e2bdf481d 100644 --- a/packages/protobuf/src/wkt/gen/google/protobuf/descriptor_pb.ts +++ b/packages/protobuf/src/wkt/gen/google/protobuf/descriptor_pb.ts @@ -31,7 +31,7 @@ import { messageDesc } from "../../../../codegenv1/message.js"; import { enumDesc } from "../../../../codegenv1/enum.js"; export const fileDesc_google_protobuf_descriptor: GenDescFile = /*@__PURE__*/ - boot({"name":"google/protobuf/descriptor.proto","package":"google.protobuf","messageType":[{"name":"FileDescriptorSet","field":[{"name":"file","number":1,"type":11,"label":3,"typeName":".google.protobuf.FileDescriptorProto"}]},{"name":"FileDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"package","number":2,"type":9,"label":1},{"name":"dependency","number":3,"type":9,"label":3},{"name":"public_dependency","number":10,"type":5,"label":3},{"name":"weak_dependency","number":11,"type":5,"label":3},{"name":"message_type","number":4,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto"},{"name":"enum_type","number":5,"type":11,"label":3,"typeName":".google.protobuf.EnumDescriptorProto"},{"name":"service","number":6,"type":11,"label":3,"typeName":".google.protobuf.ServiceDescriptorProto"},{"name":"extension","number":7,"type":11,"label":3,"typeName":".google.protobuf.FieldDescriptorProto"},{"name":"options","number":8,"type":11,"label":1,"typeName":".google.protobuf.FileOptions"},{"name":"source_code_info","number":9,"type":11,"label":1,"typeName":".google.protobuf.SourceCodeInfo"},{"name":"syntax","number":12,"type":9,"label":1},{"name":"edition","number":14,"type":14,"label":1,"typeName":".google.protobuf.Edition"}]},{"name":"DescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"field","number":2,"type":11,"label":3,"typeName":".google.protobuf.FieldDescriptorProto"},{"name":"extension","number":6,"type":11,"label":3,"typeName":".google.protobuf.FieldDescriptorProto"},{"name":"nested_type","number":3,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto"},{"name":"enum_type","number":4,"type":11,"label":3,"typeName":".google.protobuf.EnumDescriptorProto"},{"name":"extension_range","number":5,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto.ExtensionRange"},{"name":"oneof_decl","number":8,"type":11,"label":3,"typeName":".google.protobuf.OneofDescriptorProto"},{"name":"options","number":7,"type":11,"label":1,"typeName":".google.protobuf.MessageOptions"},{"name":"reserved_range","number":9,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto.ReservedRange"},{"name":"reserved_name","number":10,"type":9,"label":3}],"nestedType":[{"name":"ExtensionRange","field":[{"name":"start","number":1,"type":5,"label":1},{"name":"end","number":2,"type":5,"label":1},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.ExtensionRangeOptions"}]},{"name":"ReservedRange","field":[{"name":"start","number":1,"type":5,"label":1},{"name":"end","number":2,"type":5,"label":1}]}]},{"name":"ExtensionRangeOptions","field":[{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"},{"name":"declaration","number":2,"type":11,"label":3,"typeName":".google.protobuf.ExtensionRangeOptions.Declaration","options":{"retention":2}},{"name":"features","number":50,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"verification","number":3,"type":14,"label":1,"typeName":".google.protobuf.ExtensionRangeOptions.VerificationState","defaultValue":"UNVERIFIED","options":{"retention":2}}],"nestedType":[{"name":"Declaration","field":[{"name":"number","number":1,"type":5,"label":1},{"name":"full_name","number":2,"type":9,"label":1},{"name":"type","number":3,"type":9,"label":1},{"name":"reserved","number":5,"type":8,"label":1},{"name":"repeated","number":6,"type":8,"label":1}]}],"enumType":[{"name":"VerificationState","value":[{"name":"DECLARATION","number":0},{"name":"UNVERIFIED","number":1}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"FieldDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"number","number":3,"type":5,"label":1},{"name":"label","number":4,"type":14,"label":1,"typeName":".google.protobuf.FieldDescriptorProto.Label"},{"name":"type","number":5,"type":14,"label":1,"typeName":".google.protobuf.FieldDescriptorProto.Type"},{"name":"type_name","number":6,"type":9,"label":1},{"name":"extendee","number":2,"type":9,"label":1},{"name":"default_value","number":7,"type":9,"label":1},{"name":"oneof_index","number":9,"type":5,"label":1},{"name":"json_name","number":10,"type":9,"label":1},{"name":"options","number":8,"type":11,"label":1,"typeName":".google.protobuf.FieldOptions"},{"name":"proto3_optional","number":17,"type":8,"label":1}],"enumType":[{"name":"Type","value":[{"name":"TYPE_DOUBLE","number":1},{"name":"TYPE_FLOAT","number":2},{"name":"TYPE_INT64","number":3},{"name":"TYPE_UINT64","number":4},{"name":"TYPE_INT32","number":5},{"name":"TYPE_FIXED64","number":6},{"name":"TYPE_FIXED32","number":7},{"name":"TYPE_BOOL","number":8},{"name":"TYPE_STRING","number":9},{"name":"TYPE_GROUP","number":10},{"name":"TYPE_MESSAGE","number":11},{"name":"TYPE_BYTES","number":12},{"name":"TYPE_UINT32","number":13},{"name":"TYPE_ENUM","number":14},{"name":"TYPE_SFIXED32","number":15},{"name":"TYPE_SFIXED64","number":16},{"name":"TYPE_SINT32","number":17},{"name":"TYPE_SINT64","number":18}]},{"name":"Label","value":[{"name":"LABEL_OPTIONAL","number":1},{"name":"LABEL_REPEATED","number":3},{"name":"LABEL_REQUIRED","number":2}]}]},{"name":"OneofDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"options","number":2,"type":11,"label":1,"typeName":".google.protobuf.OneofOptions"}]},{"name":"EnumDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"value","number":2,"type":11,"label":3,"typeName":".google.protobuf.EnumValueDescriptorProto"},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.EnumOptions"},{"name":"reserved_range","number":4,"type":11,"label":3,"typeName":".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{"name":"reserved_name","number":5,"type":9,"label":3}],"nestedType":[{"name":"EnumReservedRange","field":[{"name":"start","number":1,"type":5,"label":1},{"name":"end","number":2,"type":5,"label":1}]}]},{"name":"EnumValueDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"number","number":2,"type":5,"label":1},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.EnumValueOptions"}]},{"name":"ServiceDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"method","number":2,"type":11,"label":3,"typeName":".google.protobuf.MethodDescriptorProto"},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.ServiceOptions"}]},{"name":"MethodDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"input_type","number":2,"type":9,"label":1},{"name":"output_type","number":3,"type":9,"label":1},{"name":"options","number":4,"type":11,"label":1,"typeName":".google.protobuf.MethodOptions"},{"name":"client_streaming","number":5,"type":8,"label":1,"defaultValue":"false"},{"name":"server_streaming","number":6,"type":8,"label":1,"defaultValue":"false"}]},{"name":"FileOptions","field":[{"name":"java_package","number":1,"type":9,"label":1},{"name":"java_outer_classname","number":8,"type":9,"label":1},{"name":"java_multiple_files","number":10,"type":8,"label":1,"defaultValue":"false"},{"name":"java_generate_equals_and_hash","number":20,"type":8,"label":1,"options":{"deprecated":true}},{"name":"java_string_check_utf8","number":27,"type":8,"label":1,"defaultValue":"false"},{"name":"optimize_for","number":9,"type":14,"label":1,"typeName":".google.protobuf.FileOptions.OptimizeMode","defaultValue":"SPEED"},{"name":"go_package","number":11,"type":9,"label":1},{"name":"cc_generic_services","number":16,"type":8,"label":1,"defaultValue":"false"},{"name":"java_generic_services","number":17,"type":8,"label":1,"defaultValue":"false"},{"name":"py_generic_services","number":18,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated","number":23,"type":8,"label":1,"defaultValue":"false"},{"name":"cc_enable_arenas","number":31,"type":8,"label":1,"defaultValue":"true"},{"name":"objc_class_prefix","number":36,"type":9,"label":1},{"name":"csharp_namespace","number":37,"type":9,"label":1},{"name":"swift_prefix","number":39,"type":9,"label":1},{"name":"php_class_prefix","number":40,"type":9,"label":1},{"name":"php_namespace","number":41,"type":9,"label":1},{"name":"php_metadata_namespace","number":44,"type":9,"label":1},{"name":"ruby_package","number":45,"type":9,"label":1},{"name":"features","number":50,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"enumType":[{"name":"OptimizeMode","value":[{"name":"SPEED","number":1},{"name":"CODE_SIZE","number":2},{"name":"LITE_RUNTIME","number":3}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"MessageOptions","field":[{"name":"message_set_wire_format","number":1,"type":8,"label":1,"defaultValue":"false"},{"name":"no_standard_descriptor_accessor","number":2,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"map_entry","number":7,"type":8,"label":1},{"name":"deprecated_legacy_json_field_conflicts","number":11,"type":8,"label":1,"options":{"deprecated":true}},{"name":"features","number":12,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"FieldOptions","field":[{"name":"ctype","number":1,"type":14,"label":1,"typeName":".google.protobuf.FieldOptions.CType","defaultValue":"STRING"},{"name":"packed","number":2,"type":8,"label":1},{"name":"jstype","number":6,"type":14,"label":1,"typeName":".google.protobuf.FieldOptions.JSType","defaultValue":"JS_NORMAL"},{"name":"lazy","number":5,"type":8,"label":1,"defaultValue":"false"},{"name":"unverified_lazy","number":15,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"weak","number":10,"type":8,"label":1,"defaultValue":"false"},{"name":"debug_redact","number":16,"type":8,"label":1,"defaultValue":"false"},{"name":"retention","number":17,"type":14,"label":1,"typeName":".google.protobuf.FieldOptions.OptionRetention"},{"name":"targets","number":19,"type":14,"label":3,"typeName":".google.protobuf.FieldOptions.OptionTargetType"},{"name":"edition_defaults","number":20,"type":11,"label":3,"typeName":".google.protobuf.FieldOptions.EditionDefault"},{"name":"features","number":21,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"nestedType":[{"name":"EditionDefault","field":[{"name":"edition","number":3,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"value","number":2,"type":9,"label":1}]}],"enumType":[{"name":"CType","value":[{"name":"STRING","number":0},{"name":"CORD","number":1},{"name":"STRING_PIECE","number":2}]},{"name":"JSType","value":[{"name":"JS_NORMAL","number":0},{"name":"JS_STRING","number":1},{"name":"JS_NUMBER","number":2}]},{"name":"OptionRetention","value":[{"name":"RETENTION_UNKNOWN","number":0},{"name":"RETENTION_RUNTIME","number":1},{"name":"RETENTION_SOURCE","number":2}]},{"name":"OptionTargetType","value":[{"name":"TARGET_TYPE_UNKNOWN","number":0},{"name":"TARGET_TYPE_FILE","number":1},{"name":"TARGET_TYPE_EXTENSION_RANGE","number":2},{"name":"TARGET_TYPE_MESSAGE","number":3},{"name":"TARGET_TYPE_FIELD","number":4},{"name":"TARGET_TYPE_ONEOF","number":5},{"name":"TARGET_TYPE_ENUM","number":6},{"name":"TARGET_TYPE_ENUM_ENTRY","number":7},{"name":"TARGET_TYPE_SERVICE","number":8},{"name":"TARGET_TYPE_METHOD","number":9}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"OneofOptions","field":[{"name":"features","number":1,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"EnumOptions","field":[{"name":"allow_alias","number":2,"type":8,"label":1},{"name":"deprecated","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated_legacy_json_field_conflicts","number":6,"type":8,"label":1,"options":{"deprecated":true}},{"name":"features","number":7,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"EnumValueOptions","field":[{"name":"deprecated","number":1,"type":8,"label":1,"defaultValue":"false"},{"name":"features","number":2,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"debug_redact","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"ServiceOptions","field":[{"name":"features","number":34,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"deprecated","number":33,"type":8,"label":1,"defaultValue":"false"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"MethodOptions","field":[{"name":"deprecated","number":33,"type":8,"label":1,"defaultValue":"false"},{"name":"idempotency_level","number":34,"type":14,"label":1,"typeName":".google.protobuf.MethodOptions.IdempotencyLevel","defaultValue":"IDEMPOTENCY_UNKNOWN"},{"name":"features","number":35,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"enumType":[{"name":"IdempotencyLevel","value":[{"name":"IDEMPOTENCY_UNKNOWN","number":0},{"name":"NO_SIDE_EFFECTS","number":1},{"name":"IDEMPOTENT","number":2}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"UninterpretedOption","field":[{"name":"name","number":2,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption.NamePart"},{"name":"identifier_value","number":3,"type":9,"label":1},{"name":"positive_int_value","number":4,"type":4,"label":1},{"name":"negative_int_value","number":5,"type":3,"label":1},{"name":"double_value","number":6,"type":1,"label":1},{"name":"string_value","number":7,"type":12,"label":1},{"name":"aggregate_value","number":8,"type":9,"label":1}],"nestedType":[{"name":"NamePart","field":[{"name":"name_part","number":1,"type":9,"label":2},{"name":"is_extension","number":2,"type":8,"label":2}]}]},{"name":"FeatureSet","field":[{"name":"field_presence","number":1,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.FieldPresence","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"EXPLICIT","edition":998},{"value":"IMPLICIT","edition":999},{"value":"EXPLICIT","edition":1000}]}},{"name":"enum_type","number":2,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.EnumType","options":{"retention":1,"targets":[6,1],"editionDefaults":[{"value":"CLOSED","edition":998},{"value":"OPEN","edition":999}]}},{"name":"repeated_field_encoding","number":3,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.RepeatedFieldEncoding","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"EXPANDED","edition":998},{"value":"PACKED","edition":999}]}},{"name":"utf8_validation","number":4,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.Utf8Validation","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"NONE","edition":998},{"value":"VERIFY","edition":999}]}},{"name":"message_encoding","number":5,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.MessageEncoding","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"LENGTH_PREFIXED","edition":998}]}},{"name":"json_format","number":6,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.JsonFormat","options":{"retention":1,"targets":[3,6,1],"editionDefaults":[{"value":"LEGACY_BEST_EFFORT","edition":998},{"value":"ALLOW","edition":999}]}}],"enumType":[{"name":"FieldPresence","value":[{"name":"FIELD_PRESENCE_UNKNOWN","number":0},{"name":"EXPLICIT","number":1},{"name":"IMPLICIT","number":2},{"name":"LEGACY_REQUIRED","number":3}]},{"name":"EnumType","value":[{"name":"ENUM_TYPE_UNKNOWN","number":0},{"name":"OPEN","number":1},{"name":"CLOSED","number":2}]},{"name":"RepeatedFieldEncoding","value":[{"name":"REPEATED_FIELD_ENCODING_UNKNOWN","number":0},{"name":"PACKED","number":1},{"name":"EXPANDED","number":2}]},{"name":"Utf8Validation","value":[{"name":"UTF8_VALIDATION_UNKNOWN","number":0},{"name":"VERIFY","number":2},{"name":"NONE","number":3}]},{"name":"MessageEncoding","value":[{"name":"MESSAGE_ENCODING_UNKNOWN","number":0},{"name":"LENGTH_PREFIXED","number":1},{"name":"DELIMITED","number":2}]},{"name":"JsonFormat","value":[{"name":"JSON_FORMAT_UNKNOWN","number":0},{"name":"ALLOW","number":1},{"name":"LEGACY_BEST_EFFORT","number":2}]}],"extensionRange":[{"start":1000,"end":1001},{"start":1001,"end":1002},{"start":1002,"end":1003},{"start":9995,"end":10000},{"start":10000,"end":10001}]},{"name":"FeatureSetDefaults","field":[{"name":"defaults","number":1,"type":11,"label":3,"typeName":".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{"name":"minimum_edition","number":4,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"maximum_edition","number":5,"type":14,"label":1,"typeName":".google.protobuf.Edition"}],"nestedType":[{"name":"FeatureSetEditionDefault","field":[{"name":"edition","number":3,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"features","number":2,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"}]}]},{"name":"SourceCodeInfo","field":[{"name":"location","number":1,"type":11,"label":3,"typeName":".google.protobuf.SourceCodeInfo.Location"}],"nestedType":[{"name":"Location","field":[{"name":"path","number":1,"type":5,"label":3,"options":{"packed":true}},{"name":"span","number":2,"type":5,"label":3,"options":{"packed":true}},{"name":"leading_comments","number":3,"type":9,"label":1},{"name":"trailing_comments","number":4,"type":9,"label":1},{"name":"leading_detached_comments","number":6,"type":9,"label":3}]}]},{"name":"GeneratedCodeInfo","field":[{"name":"annotation","number":1,"type":11,"label":3,"typeName":".google.protobuf.GeneratedCodeInfo.Annotation"}],"nestedType":[{"name":"Annotation","field":[{"name":"path","number":1,"type":5,"label":3,"options":{"packed":true}},{"name":"source_file","number":2,"type":9,"label":1},{"name":"begin","number":3,"type":5,"label":1},{"name":"end","number":4,"type":5,"label":1},{"name":"semantic","number":5,"type":14,"label":1,"typeName":".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],"enumType":[{"name":"Semantic","value":[{"name":"NONE","number":0},{"name":"SET","number":1},{"name":"ALIAS","number":2}]}]}]}],"enumType":[{"name":"Edition","value":[{"name":"EDITION_UNKNOWN","number":0},{"name":"EDITION_PROTO2","number":998},{"name":"EDITION_PROTO3","number":999},{"name":"EDITION_2023","number":1000},{"name":"EDITION_2024","number":1001},{"name":"EDITION_1_TEST_ONLY","number":1},{"name":"EDITION_2_TEST_ONLY","number":2},{"name":"EDITION_99997_TEST_ONLY","number":99997},{"name":"EDITION_99998_TEST_ONLY","number":99998},{"name":"EDITION_99999_TEST_ONLY","number":99999},{"name":"EDITION_MAX","number":2147483647}]}]}); + boot({"name":"google/protobuf/descriptor.proto","package":"google.protobuf","messageType":[{"name":"FileDescriptorSet","field":[{"name":"file","number":1,"type":11,"label":3,"typeName":".google.protobuf.FileDescriptorProto"}]},{"name":"FileDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"package","number":2,"type":9,"label":1},{"name":"dependency","number":3,"type":9,"label":3},{"name":"public_dependency","number":10,"type":5,"label":3},{"name":"weak_dependency","number":11,"type":5,"label":3},{"name":"message_type","number":4,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto"},{"name":"enum_type","number":5,"type":11,"label":3,"typeName":".google.protobuf.EnumDescriptorProto"},{"name":"service","number":6,"type":11,"label":3,"typeName":".google.protobuf.ServiceDescriptorProto"},{"name":"extension","number":7,"type":11,"label":3,"typeName":".google.protobuf.FieldDescriptorProto"},{"name":"options","number":8,"type":11,"label":1,"typeName":".google.protobuf.FileOptions"},{"name":"source_code_info","number":9,"type":11,"label":1,"typeName":".google.protobuf.SourceCodeInfo"},{"name":"syntax","number":12,"type":9,"label":1},{"name":"edition","number":14,"type":14,"label":1,"typeName":".google.protobuf.Edition"}]},{"name":"DescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"field","number":2,"type":11,"label":3,"typeName":".google.protobuf.FieldDescriptorProto"},{"name":"extension","number":6,"type":11,"label":3,"typeName":".google.protobuf.FieldDescriptorProto"},{"name":"nested_type","number":3,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto"},{"name":"enum_type","number":4,"type":11,"label":3,"typeName":".google.protobuf.EnumDescriptorProto"},{"name":"extension_range","number":5,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto.ExtensionRange"},{"name":"oneof_decl","number":8,"type":11,"label":3,"typeName":".google.protobuf.OneofDescriptorProto"},{"name":"options","number":7,"type":11,"label":1,"typeName":".google.protobuf.MessageOptions"},{"name":"reserved_range","number":9,"type":11,"label":3,"typeName":".google.protobuf.DescriptorProto.ReservedRange"},{"name":"reserved_name","number":10,"type":9,"label":3}],"nestedType":[{"name":"ExtensionRange","field":[{"name":"start","number":1,"type":5,"label":1},{"name":"end","number":2,"type":5,"label":1},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.ExtensionRangeOptions"}]},{"name":"ReservedRange","field":[{"name":"start","number":1,"type":5,"label":1},{"name":"end","number":2,"type":5,"label":1}]}]},{"name":"ExtensionRangeOptions","field":[{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"},{"name":"declaration","number":2,"type":11,"label":3,"typeName":".google.protobuf.ExtensionRangeOptions.Declaration","options":{"retention":2}},{"name":"features","number":50,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"verification","number":3,"type":14,"label":1,"typeName":".google.protobuf.ExtensionRangeOptions.VerificationState","defaultValue":"UNVERIFIED","options":{"retention":2}}],"nestedType":[{"name":"Declaration","field":[{"name":"number","number":1,"type":5,"label":1},{"name":"full_name","number":2,"type":9,"label":1},{"name":"type","number":3,"type":9,"label":1},{"name":"reserved","number":5,"type":8,"label":1},{"name":"repeated","number":6,"type":8,"label":1}]}],"enumType":[{"name":"VerificationState","value":[{"name":"DECLARATION","number":0},{"name":"UNVERIFIED","number":1}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"FieldDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"number","number":3,"type":5,"label":1},{"name":"label","number":4,"type":14,"label":1,"typeName":".google.protobuf.FieldDescriptorProto.Label"},{"name":"type","number":5,"type":14,"label":1,"typeName":".google.protobuf.FieldDescriptorProto.Type"},{"name":"type_name","number":6,"type":9,"label":1},{"name":"extendee","number":2,"type":9,"label":1},{"name":"default_value","number":7,"type":9,"label":1},{"name":"oneof_index","number":9,"type":5,"label":1},{"name":"json_name","number":10,"type":9,"label":1},{"name":"options","number":8,"type":11,"label":1,"typeName":".google.protobuf.FieldOptions"},{"name":"proto3_optional","number":17,"type":8,"label":1}],"enumType":[{"name":"Type","value":[{"name":"TYPE_DOUBLE","number":1},{"name":"TYPE_FLOAT","number":2},{"name":"TYPE_INT64","number":3},{"name":"TYPE_UINT64","number":4},{"name":"TYPE_INT32","number":5},{"name":"TYPE_FIXED64","number":6},{"name":"TYPE_FIXED32","number":7},{"name":"TYPE_BOOL","number":8},{"name":"TYPE_STRING","number":9},{"name":"TYPE_GROUP","number":10},{"name":"TYPE_MESSAGE","number":11},{"name":"TYPE_BYTES","number":12},{"name":"TYPE_UINT32","number":13},{"name":"TYPE_ENUM","number":14},{"name":"TYPE_SFIXED32","number":15},{"name":"TYPE_SFIXED64","number":16},{"name":"TYPE_SINT32","number":17},{"name":"TYPE_SINT64","number":18}]},{"name":"Label","value":[{"name":"LABEL_OPTIONAL","number":1},{"name":"LABEL_REPEATED","number":3},{"name":"LABEL_REQUIRED","number":2}]}]},{"name":"OneofDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"options","number":2,"type":11,"label":1,"typeName":".google.protobuf.OneofOptions"}]},{"name":"EnumDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"value","number":2,"type":11,"label":3,"typeName":".google.protobuf.EnumValueDescriptorProto"},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.EnumOptions"},{"name":"reserved_range","number":4,"type":11,"label":3,"typeName":".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{"name":"reserved_name","number":5,"type":9,"label":3}],"nestedType":[{"name":"EnumReservedRange","field":[{"name":"start","number":1,"type":5,"label":1},{"name":"end","number":2,"type":5,"label":1}]}]},{"name":"EnumValueDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"number","number":2,"type":5,"label":1},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.EnumValueOptions"}]},{"name":"ServiceDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"method","number":2,"type":11,"label":3,"typeName":".google.protobuf.MethodDescriptorProto"},{"name":"options","number":3,"type":11,"label":1,"typeName":".google.protobuf.ServiceOptions"}]},{"name":"MethodDescriptorProto","field":[{"name":"name","number":1,"type":9,"label":1},{"name":"input_type","number":2,"type":9,"label":1},{"name":"output_type","number":3,"type":9,"label":1},{"name":"options","number":4,"type":11,"label":1,"typeName":".google.protobuf.MethodOptions"},{"name":"client_streaming","number":5,"type":8,"label":1,"defaultValue":"false"},{"name":"server_streaming","number":6,"type":8,"label":1,"defaultValue":"false"}]},{"name":"FileOptions","field":[{"name":"java_package","number":1,"type":9,"label":1},{"name":"java_outer_classname","number":8,"type":9,"label":1},{"name":"java_multiple_files","number":10,"type":8,"label":1,"defaultValue":"false"},{"name":"java_generate_equals_and_hash","number":20,"type":8,"label":1,"options":{"deprecated":true}},{"name":"java_string_check_utf8","number":27,"type":8,"label":1,"defaultValue":"false"},{"name":"optimize_for","number":9,"type":14,"label":1,"typeName":".google.protobuf.FileOptions.OptimizeMode","defaultValue":"SPEED"},{"name":"go_package","number":11,"type":9,"label":1},{"name":"cc_generic_services","number":16,"type":8,"label":1,"defaultValue":"false"},{"name":"java_generic_services","number":17,"type":8,"label":1,"defaultValue":"false"},{"name":"py_generic_services","number":18,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated","number":23,"type":8,"label":1,"defaultValue":"false"},{"name":"cc_enable_arenas","number":31,"type":8,"label":1,"defaultValue":"true"},{"name":"objc_class_prefix","number":36,"type":9,"label":1},{"name":"csharp_namespace","number":37,"type":9,"label":1},{"name":"swift_prefix","number":39,"type":9,"label":1},{"name":"php_class_prefix","number":40,"type":9,"label":1},{"name":"php_namespace","number":41,"type":9,"label":1},{"name":"php_metadata_namespace","number":44,"type":9,"label":1},{"name":"ruby_package","number":45,"type":9,"label":1},{"name":"features","number":50,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"enumType":[{"name":"OptimizeMode","value":[{"name":"SPEED","number":1},{"name":"CODE_SIZE","number":2},{"name":"LITE_RUNTIME","number":3}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"MessageOptions","field":[{"name":"message_set_wire_format","number":1,"type":8,"label":1,"defaultValue":"false"},{"name":"no_standard_descriptor_accessor","number":2,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"map_entry","number":7,"type":8,"label":1},{"name":"deprecated_legacy_json_field_conflicts","number":11,"type":8,"label":1,"options":{"deprecated":true}},{"name":"features","number":12,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"FieldOptions","field":[{"name":"ctype","number":1,"type":14,"label":1,"typeName":".google.protobuf.FieldOptions.CType","defaultValue":"STRING"},{"name":"packed","number":2,"type":8,"label":1},{"name":"jstype","number":6,"type":14,"label":1,"typeName":".google.protobuf.FieldOptions.JSType","defaultValue":"JS_NORMAL"},{"name":"lazy","number":5,"type":8,"label":1,"defaultValue":"false"},{"name":"unverified_lazy","number":15,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"weak","number":10,"type":8,"label":1,"defaultValue":"false"},{"name":"debug_redact","number":16,"type":8,"label":1,"defaultValue":"false"},{"name":"retention","number":17,"type":14,"label":1,"typeName":".google.protobuf.FieldOptions.OptionRetention"},{"name":"targets","number":19,"type":14,"label":3,"typeName":".google.protobuf.FieldOptions.OptionTargetType"},{"name":"edition_defaults","number":20,"type":11,"label":3,"typeName":".google.protobuf.FieldOptions.EditionDefault"},{"name":"features","number":21,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"feature_support","number":22,"type":11,"label":1,"typeName":".google.protobuf.FieldOptions.FeatureSupport"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"nestedType":[{"name":"EditionDefault","field":[{"name":"edition","number":3,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"value","number":2,"type":9,"label":1}]},{"name":"FeatureSupport","field":[{"name":"edition_introduced","number":1,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"edition_deprecated","number":2,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"deprecation_warning","number":3,"type":9,"label":1},{"name":"edition_removed","number":4,"type":14,"label":1,"typeName":".google.protobuf.Edition"}]}],"enumType":[{"name":"CType","value":[{"name":"STRING","number":0},{"name":"CORD","number":1},{"name":"STRING_PIECE","number":2}]},{"name":"JSType","value":[{"name":"JS_NORMAL","number":0},{"name":"JS_STRING","number":1},{"name":"JS_NUMBER","number":2}]},{"name":"OptionRetention","value":[{"name":"RETENTION_UNKNOWN","number":0},{"name":"RETENTION_RUNTIME","number":1},{"name":"RETENTION_SOURCE","number":2}]},{"name":"OptionTargetType","value":[{"name":"TARGET_TYPE_UNKNOWN","number":0},{"name":"TARGET_TYPE_FILE","number":1},{"name":"TARGET_TYPE_EXTENSION_RANGE","number":2},{"name":"TARGET_TYPE_MESSAGE","number":3},{"name":"TARGET_TYPE_FIELD","number":4},{"name":"TARGET_TYPE_ONEOF","number":5},{"name":"TARGET_TYPE_ENUM","number":6},{"name":"TARGET_TYPE_ENUM_ENTRY","number":7},{"name":"TARGET_TYPE_SERVICE","number":8},{"name":"TARGET_TYPE_METHOD","number":9}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"OneofOptions","field":[{"name":"features","number":1,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"EnumOptions","field":[{"name":"allow_alias","number":2,"type":8,"label":1},{"name":"deprecated","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"deprecated_legacy_json_field_conflicts","number":6,"type":8,"label":1,"options":{"deprecated":true}},{"name":"features","number":7,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"EnumValueOptions","field":[{"name":"deprecated","number":1,"type":8,"label":1,"defaultValue":"false"},{"name":"features","number":2,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"debug_redact","number":3,"type":8,"label":1,"defaultValue":"false"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"ServiceOptions","field":[{"name":"features","number":34,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"deprecated","number":33,"type":8,"label":1,"defaultValue":"false"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"MethodOptions","field":[{"name":"deprecated","number":33,"type":8,"label":1,"defaultValue":"false"},{"name":"idempotency_level","number":34,"type":14,"label":1,"typeName":".google.protobuf.MethodOptions.IdempotencyLevel","defaultValue":"IDEMPOTENCY_UNKNOWN"},{"name":"features","number":35,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"uninterpreted_option","number":999,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption"}],"enumType":[{"name":"IdempotencyLevel","value":[{"name":"IDEMPOTENCY_UNKNOWN","number":0},{"name":"NO_SIDE_EFFECTS","number":1},{"name":"IDEMPOTENT","number":2}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"UninterpretedOption","field":[{"name":"name","number":2,"type":11,"label":3,"typeName":".google.protobuf.UninterpretedOption.NamePart"},{"name":"identifier_value","number":3,"type":9,"label":1},{"name":"positive_int_value","number":4,"type":4,"label":1},{"name":"negative_int_value","number":5,"type":3,"label":1},{"name":"double_value","number":6,"type":1,"label":1},{"name":"string_value","number":7,"type":12,"label":1},{"name":"aggregate_value","number":8,"type":9,"label":1}],"nestedType":[{"name":"NamePart","field":[{"name":"name_part","number":1,"type":9,"label":2},{"name":"is_extension","number":2,"type":8,"label":2}]}]},{"name":"FeatureSet","field":[{"name":"field_presence","number":1,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.FieldPresence","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"EXPLICIT","edition":998},{"value":"IMPLICIT","edition":999},{"value":"EXPLICIT","edition":1000}]}},{"name":"enum_type","number":2,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.EnumType","options":{"retention":1,"targets":[6,1],"editionDefaults":[{"value":"CLOSED","edition":998},{"value":"OPEN","edition":999}]}},{"name":"repeated_field_encoding","number":3,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.RepeatedFieldEncoding","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"EXPANDED","edition":998},{"value":"PACKED","edition":999}]}},{"name":"utf8_validation","number":4,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.Utf8Validation","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"NONE","edition":998},{"value":"VERIFY","edition":999}]}},{"name":"message_encoding","number":5,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.MessageEncoding","options":{"retention":1,"targets":[4,1],"editionDefaults":[{"value":"LENGTH_PREFIXED","edition":998}]}},{"name":"json_format","number":6,"type":14,"label":1,"typeName":".google.protobuf.FeatureSet.JsonFormat","options":{"retention":1,"targets":[3,6,1],"editionDefaults":[{"value":"LEGACY_BEST_EFFORT","edition":998},{"value":"ALLOW","edition":999}]}}],"enumType":[{"name":"FieldPresence","value":[{"name":"FIELD_PRESENCE_UNKNOWN","number":0},{"name":"EXPLICIT","number":1},{"name":"IMPLICIT","number":2},{"name":"LEGACY_REQUIRED","number":3}]},{"name":"EnumType","value":[{"name":"ENUM_TYPE_UNKNOWN","number":0},{"name":"OPEN","number":1},{"name":"CLOSED","number":2}]},{"name":"RepeatedFieldEncoding","value":[{"name":"REPEATED_FIELD_ENCODING_UNKNOWN","number":0},{"name":"PACKED","number":1},{"name":"EXPANDED","number":2}]},{"name":"Utf8Validation","value":[{"name":"UTF8_VALIDATION_UNKNOWN","number":0},{"name":"VERIFY","number":2},{"name":"NONE","number":3}]},{"name":"MessageEncoding","value":[{"name":"MESSAGE_ENCODING_UNKNOWN","number":0},{"name":"LENGTH_PREFIXED","number":1},{"name":"DELIMITED","number":2}]},{"name":"JsonFormat","value":[{"name":"JSON_FORMAT_UNKNOWN","number":0},{"name":"ALLOW","number":1},{"name":"LEGACY_BEST_EFFORT","number":2}]}],"extensionRange":[{"start":1000,"end":1001},{"start":1001,"end":1002},{"start":1002,"end":1003},{"start":9990,"end":9991},{"start":9995,"end":10000},{"start":10000,"end":10001}]},{"name":"FeatureSetDefaults","field":[{"name":"defaults","number":1,"type":11,"label":3,"typeName":".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{"name":"minimum_edition","number":4,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"maximum_edition","number":5,"type":14,"label":1,"typeName":".google.protobuf.Edition"}],"nestedType":[{"name":"FeatureSetEditionDefault","field":[{"name":"edition","number":3,"type":14,"label":1,"typeName":".google.protobuf.Edition"},{"name":"overridable_features","number":4,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"},{"name":"fixed_features","number":5,"type":11,"label":1,"typeName":".google.protobuf.FeatureSet"}]}]},{"name":"SourceCodeInfo","field":[{"name":"location","number":1,"type":11,"label":3,"typeName":".google.protobuf.SourceCodeInfo.Location"}],"nestedType":[{"name":"Location","field":[{"name":"path","number":1,"type":5,"label":3,"options":{"packed":true}},{"name":"span","number":2,"type":5,"label":3,"options":{"packed":true}},{"name":"leading_comments","number":3,"type":9,"label":1},{"name":"trailing_comments","number":4,"type":9,"label":1},{"name":"leading_detached_comments","number":6,"type":9,"label":3}]}]},{"name":"GeneratedCodeInfo","field":[{"name":"annotation","number":1,"type":11,"label":3,"typeName":".google.protobuf.GeneratedCodeInfo.Annotation"}],"nestedType":[{"name":"Annotation","field":[{"name":"path","number":1,"type":5,"label":3,"options":{"packed":true}},{"name":"source_file","number":2,"type":9,"label":1},{"name":"begin","number":3,"type":5,"label":1},{"name":"end","number":4,"type":5,"label":1},{"name":"semantic","number":5,"type":14,"label":1,"typeName":".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],"enumType":[{"name":"Semantic","value":[{"name":"NONE","number":0},{"name":"SET","number":1},{"name":"ALIAS","number":2}]}]}]}],"enumType":[{"name":"Edition","value":[{"name":"EDITION_UNKNOWN","number":0},{"name":"EDITION_LEGACY","number":900},{"name":"EDITION_PROTO2","number":998},{"name":"EDITION_PROTO3","number":999},{"name":"EDITION_2023","number":1000},{"name":"EDITION_2024","number":1001},{"name":"EDITION_1_TEST_ONLY","number":1},{"name":"EDITION_2_TEST_ONLY","number":2},{"name":"EDITION_99997_TEST_ONLY","number":99997},{"name":"EDITION_99998_TEST_ONLY","number":99998},{"name":"EDITION_99999_TEST_ONLY","number":99999},{"name":"EDITION_MAX","number":2147483647}]}]}); /** * The protocol compiler can output a FileDescriptorSet containing the .proto @@ -903,12 +903,16 @@ export type FileOptions = Message<"google.protobuf.FileOptions"> & { javaGenerateEqualsAndHash: boolean; /** - * If set true, then the Java2 code generator will generate code that - * throws an exception whenever an attempt is made to assign a non-UTF-8 - * byte sequence to a string field. - * Message reflection will do the same. - * However, an extension field still accepts non-UTF-8 byte sequences. - * This option has no effect on when used with the lite runtime. + * A proto2 file can set this to true to opt in to UTF-8 checking for Java, + * which will throw an exception if invalid UTF-8 is parsed from the wire or + * assigned to a string field. + * + * TODO: clarify exactly what kinds of field types this option + * applies to, and update these docs accordingly. + * + * Proto3 files already perform these checks. Setting the option explicitly to + * false has no effect: it cannot be used to opt proto3 files out of UTF-8 + * checks. * * @generated from field: optional bool java_string_check_utf8 = 27 [default = false]; */ @@ -1330,6 +1334,11 @@ export type FieldOptions = Message<"google.protobuf.FieldOptions"> & { */ features?: FeatureSet; + /** + * @generated from field: optional google.protobuf.FieldOptions.FeatureSupport feature_support = 22; + */ + featureSupport?: FieldOptions_FeatureSupport; + /** * The parser stores options it doesn't recognize here. See above. * @@ -1365,6 +1374,52 @@ export type FieldOptions_EditionDefault = Message<"google.protobuf.FieldOptions. export const FieldOptions_EditionDefaultDesc: GenDescMessage = /*@__PURE__*/ messageDesc(fileDesc_google_protobuf_descriptor, 12, 0); +/** + * Information about the support window of a feature. + * + * @generated from message google.protobuf.FieldOptions.FeatureSupport + */ +export type FieldOptions_FeatureSupport = Message<"google.protobuf.FieldOptions.FeatureSupport"> & { + /** + * The edition that this feature was first available in. In editions + * earlier than this one, the default assigned to EDITION_LEGACY will be + * used, and proto files will not be able to override it. + * + * @generated from field: optional google.protobuf.Edition edition_introduced = 1; + */ + editionIntroduced: Edition; + + /** + * The edition this feature becomes deprecated in. Using this after this + * edition may trigger warnings. + * + * @generated from field: optional google.protobuf.Edition edition_deprecated = 2; + */ + editionDeprecated: Edition; + + /** + * The deprecation warning text if this feature is used after the edition it + * was marked deprecated in. + * + * @generated from field: optional string deprecation_warning = 3; + */ + deprecationWarning: string; + + /** + * The edition this feature is no longer available in. In editions after + * this one, the last default assigned will be used, and proto files will + * not be able to override it. + * + * @generated from field: optional google.protobuf.Edition edition_removed = 4; + */ + editionRemoved: Edition; +}; + +// Describes the message google.protobuf.FieldOptions.FeatureSupport. +// Use `create(FieldOptions_FeatureSupportDesc)` to create a new FieldOptions_FeatureSupport. +export const FieldOptions_FeatureSupportDesc: GenDescMessage = /*@__PURE__*/ + messageDesc(fileDesc_google_protobuf_descriptor, 12, 1); + /** * @generated from enum google.protobuf.FieldOptions.CType */ @@ -2075,9 +2130,18 @@ export type FeatureSetDefaults_FeatureSetEditionDefault = Message<"google.protob edition: Edition; /** - * @generated from field: optional google.protobuf.FeatureSet features = 2; + * Defaults of features that can be overridden in this edition. + * + * @generated from field: optional google.protobuf.FeatureSet overridable_features = 4; */ - features?: FeatureSet; + overridableFeatures?: FeatureSet; + + /** + * Defaults of features that can't be overridden in this edition. + * + * @generated from field: optional google.protobuf.FeatureSet fixed_features = 5; + */ + fixedFeatures?: FeatureSet; }; // Describes the message google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. @@ -2375,6 +2439,14 @@ export enum Edition { */ EDITION_UNKNOWN = 0, + /** + * A placeholder edition for specifying default behaviors *before* a feature + * was first introduced. This is effectively an "infinite past". + * + * @generated from enum value: EDITION_LEGACY = 900; + */ + EDITION_LEGACY = 900, + /** * Legacy syntax "editions". These pre-date editions, but behave much like * distinct editions. These can't be used to specify the edition of proto diff --git a/packages/upstream-protobuf/bin/protoc-gen-dumpcodegenreq.mjs b/packages/upstream-protobuf/bin/protoc-gen-dumpcodegenreq.mjs index 1993d203f..b4cefb4c9 100755 --- a/packages/upstream-protobuf/bin/protoc-gen-dumpcodegenreq.mjs +++ b/packages/upstream-protobuf/bin/protoc-gen-dumpcodegenreq.mjs @@ -21,8 +21,21 @@ import { stdin, stdout } from "node:process"; stdin.pipe(createWriteStream("dumpcodegenreq.binpb")); // Write a minimal a google.protobuf.CodeGenerateResponse to stdout. -// This is just the field supported_features set to a bitwise "or" of -// FEATURE_PROTO3_OPTIONAL and FEATURE_SUPPORTS_EDITIONS. See the code snippet -// below. -const minimalResponse = new Uint8Array([16, 3]); +/* +import {create, toBinary} from "@bufbuild/protobuf"; +import {CodeGeneratorResponse_Feature, CodeGeneratorResponseDesc, Edition} from "@bufbuild/protobuf/wkt"; +const res = create(CodeGeneratorResponseDesc, { + supportedFeatures: BigInt( + CodeGeneratorResponse_Feature.SUPPORTS_EDITIONS | CodeGeneratorResponse_Feature.PROTO3_OPTIONAL + ), + minimumEdition: Edition.EDITION_LEGACY, + maximumEdition: Edition.EDITION_MAX, +}); +console.log( + toBinary(CodeGeneratorResponseDesc, res) +); +*/ +const minimalResponse = new Uint8Array([ + 16, 3, 24, 132, 7, 32, 255, 255, 255, 255, 7, +]); stdout.write(minimalResponse); diff --git a/packages/upstream-protobuf/index.mjs b/packages/upstream-protobuf/index.mjs index e02fe7751..4f62daecd 100644 --- a/packages/upstream-protobuf/index.mjs +++ b/packages/upstream-protobuf/index.mjs @@ -70,7 +70,20 @@ export class UpstreamProtobuf { "src/google/protobuf/test_messages_*.proto", "src/google/protobuf/*unittest*.proto", "!src/google/protobuf/map_proto3_unittest.proto", + "!src/google/protobuf/edition_unittest.proto", "!src/google/protobuf/unittest_arena.proto", + "!src/google/protobuf/map_unittest.proto", + "!src/google/protobuf/map_lite_unittest.proto", + "!src/google/protobuf/unittest_lite.proto", + "!src/google/protobuf/unittest_import_lite.proto", + "!src/google/protobuf/unittest_import_public_lite.proto", + "!src/google/protobuf/unittest_delimited.proto", + "!src/google/protobuf/unittest_delimited_import.proto", + "!src/google/protobuf/unittest_proto3_extensions.proto", + "!src/google/protobuf/unittest_proto3_lite.proto", + "!src/google/protobuf/unittest_proto3_arena.proto", + "!src/google/protobuf/unittest_proto3_arena_lite.proto", + "!src/google/protobuf/unittest_string_view.proto", "!src/google/protobuf/unittest_drop_unknown_fields.proto", "!src/google/protobuf/unittest_lazy_dependencies.proto", "!src/google/protobuf/unittest_lazy_dependencies_custom_option.proto", @@ -146,7 +159,6 @@ export class UpstreamProtobuf { writeTree(Object.entries(files), tempDir); const outPath = joinPath(tempDir, "desc.binpb"); const args = [ - "--experimental_editions", "--descriptor_set_out", outPath, "--proto_path", @@ -191,7 +203,6 @@ export class UpstreamProtobuf { try { writeTree(Object.entries(files), tempDir); const args = [ - "--experimental_editions", "--dumpcodegenreq_out", ".", "--proto_path", @@ -235,16 +246,16 @@ export class UpstreamProtobuf { try { writeTree(Object.entries(files), tempDir); const args = [ - "--experimental_edition_defaults_out", + "--edition_defaults_out", "defaults.binpb", "google/protobuf/descriptor.proto", ...Object.keys(files), ]; if (minimumEdition !== undefined) { - args.push("--experimental_edition_defaults_minimum", minimumEdition); + args.push("--edition_defaults_minimum", minimumEdition); } if (maximumEdition !== undefined) { - args.push("--experimental_edition_defaults_maximum", maximumEdition); + args.push("--edition_defaults_maximum", maximumEdition); } execFileSync(protocPath, args, { shell: false, @@ -394,7 +405,12 @@ export class UpstreamProtobuf { } break; } - const url = `https://github.com/protocolbuffers/protobuf/releases/download/v${this.#version}/protoc-${this.#version}-${build}.zip`; + let archiveVersion = this.#version; + const rcMatch = /^(\d+\.\d+-rc)(\d)$/.exec(archiveVersion); + if (rcMatch != null) { + archiveVersion = rcMatch[1] + "-" + rcMatch[2]; + } + const url = `https://github.com/protocolbuffers/protobuf/releases/download/v${this.#version}/protoc-${archiveVersion}-${build}.zip`; return this.#download(url, "protoc.zip"); } diff --git a/packages/upstream-protobuf/version.txt b/packages/upstream-protobuf/version.txt index dfa88c8eb..023643fdb 100644 --- a/packages/upstream-protobuf/version.txt +++ b/packages/upstream-protobuf/version.txt @@ -1 +1 @@ -26.1 +27.0-rc1