From 69ca55405b8752c77fd1afa43781bc17749faa15 Mon Sep 17 00:00:00 2001 From: Google Cloud SDK Librarian Date: Wed, 10 Jun 2026 07:09:06 +0000 Subject: [PATCH 1/6] regen: Regenerate Google.Cloud.AlloyDb.V1 at API commit 08f4bdd feat: add POSTGRES_18 to supported database versions PiperOrigin-RevId: 929464697 Source-Link: https://github.com/googleapis/googleapis/commit/08f4bdd37d79f29c7b6a7082c1c73ef78de4b898 --- .github/renovate.json | 3 +- .../Google.Cloud.AlloyDb.V1/Resources.g.cs | 43 +++++++++++-------- generator-input/pipeline-state.json | 2 +- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 222934594cf3..7cd3c129440a 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -370,8 +370,7 @@ "System.Collections.Immutable", "dotnet-sdk" ], - "allowedVersions": "<9.0.0", - "minimumReleaseAge": "7 days" + "allowedVersions": "<9.0.0" }, { "matchPaths": [ diff --git a/apis/Google.Cloud.AlloyDb.V1/Google.Cloud.AlloyDb.V1/Resources.g.cs b/apis/Google.Cloud.AlloyDb.V1/Google.Cloud.AlloyDb.V1/Resources.g.cs index 88bbbd1a2dde..6338ea8400c1 100644 --- a/apis/Google.Cloud.AlloyDb.V1/Google.Cloud.AlloyDb.V1/Resources.g.cs +++ b/apis/Google.Cloud.AlloyDb.V1/Google.Cloud.AlloyDb.V1/Resources.g.cs @@ -369,27 +369,28 @@ static ResourcesReflection() { "E0lOU1RBTkNFX1ZJRVdfQkFTSUMQARIWChJJTlNUQU5DRV9WSUVXX0ZVTEwQ", "AipnCgtDbHVzdGVyVmlldxIcChhDTFVTVEVSX1ZJRVdfVU5TUEVDSUZJRUQQ", "ABIWChJDTFVTVEVSX1ZJRVdfQkFTSUMQARIiCh5DTFVTVEVSX1ZJRVdfQ09O", - "VElOVU9VU19CQUNLVVAQAiqMAQoPRGF0YWJhc2VWZXJzaW9uEiAKHERBVEFC", + "VElOVU9VU19CQUNLVVAQAiqdAQoPRGF0YWJhc2VWZXJzaW9uEiAKHERBVEFC", "QVNFX1ZFUlNJT05fVU5TUEVDSUZJRUQQABITCgtQT1NUR1JFU18xMxABGgII", "ARIPCgtQT1NUR1JFU18xNBACEg8KC1BPU1RHUkVTXzE1EAMSDwoLUE9TVEdS", - "RVNfMTYQBBIPCgtQT1NUR1JFU18xNxAFKk4KEFN1YnNjcmlwdGlvblR5cGUS", - "IQodU1VCU0NSSVBUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIMCghTVEFOREFS", - "RBABEgkKBVRSSUFMEAJCpwUKG2NvbS5nb29nbGUuY2xvdWQuYWxsb3lkYi52", - "MUIOUmVzb3VyY2VzUHJvdG9QAVo1Y2xvdWQuZ29vZ2xlLmNvbS9nby9hbGxv", - "eWRiL2FwaXYxL2FsbG95ZGJwYjthbGxveWRicGKqAhdHb29nbGUuQ2xvdWQu", - "QWxsb3lEYi5WMcoCF0dvb2dsZVxDbG91ZFxBbGxveURiXFYx6gIaR29vZ2xl", - "OjpDbG91ZDo6QWxsb3lEQjo6VjHqQaYBCihjbG91ZGttcy5nb29nbGVhcGlz", - "LmNvbS9DcnlwdG9LZXlWZXJzaW9uEnpwcm9qZWN0cy97cHJvamVjdH0vbG9j", - "YXRpb25zL3tsb2NhdGlvbn0va2V5UmluZ3Mve2tleV9yaW5nfS9jcnlwdG9L", - "ZXlzL3tjcnlwdG9fa2V5fS9jcnlwdG9LZXlWZXJzaW9ucy97Y3J5cHRvX2tl", - "eV92ZXJzaW9ufepBTgoeY29tcHV0ZS5nb29nbGVhcGlzLmNvbS9OZXR3b3Jr", - "Eixwcm9qZWN0cy97cHJvamVjdH0vZ2xvYmFsL25ldHdvcmtzL3tuZXR3b3Jr", - "fepBeAohY2xvdWRrbXMuZ29vZ2xlYXBpcy5jb20vQ3J5cHRvS2V5ElNwcm9q", - "ZWN0cy97cHJvamVjdH0vbG9jYXRpb25zL3tsb2NhdGlvbn0va2V5UmluZ3Mv", - "e2tleV9yaW5nfS9jcnlwdG9LZXlzL3tjcnlwdG9fa2V5fepBdwooY29tcHV0", - "ZS5nb29nbGVhcGlzLmNvbS9TZXJ2aWNlQXR0YWNobWVudBJLcHJvamVjdHMv", - "e3Byb2plY3R9L3JlZ2lvbnMve3JlZ2lvbn0vc2VydmljZUF0dGFjaG1lbnRz", - "L3tzZXJ2aWNlX2F0dGFjaG1lbnR9YgZwcm90bzM=")); + "RVNfMTYQBBIPCgtQT1NUR1JFU18xNxAFEg8KC1BPU1RHUkVTXzE4EAYqTgoQ", + "U3Vic2NyaXB0aW9uVHlwZRIhCh1TVUJTQ1JJUFRJT05fVFlQRV9VTlNQRUNJ", + "RklFRBAAEgwKCFNUQU5EQVJEEAESCQoFVFJJQUwQAkKnBQobY29tLmdvb2ds", + "ZS5jbG91ZC5hbGxveWRiLnYxQg5SZXNvdXJjZXNQcm90b1ABWjVjbG91ZC5n", + "b29nbGUuY29tL2dvL2FsbG95ZGIvYXBpdjEvYWxsb3lkYnBiO2FsbG95ZGJw", + "YqoCF0dvb2dsZS5DbG91ZC5BbGxveURiLlYxygIXR29vZ2xlXENsb3VkXEFs", + "bG95RGJcVjHqAhpHb29nbGU6OkNsb3VkOjpBbGxveURCOjpWMepBpgEKKGNs", + "b3Vka21zLmdvb2dsZWFwaXMuY29tL0NyeXB0b0tleVZlcnNpb24SenByb2pl", + "Y3RzL3twcm9qZWN0fS9sb2NhdGlvbnMve2xvY2F0aW9ufS9rZXlSaW5ncy97", + "a2V5X3Jpbmd9L2NyeXB0b0tleXMve2NyeXB0b19rZXl9L2NyeXB0b0tleVZl", + "cnNpb25zL3tjcnlwdG9fa2V5X3ZlcnNpb2596kFOCh5jb21wdXRlLmdvb2ds", + "ZWFwaXMuY29tL05ldHdvcmsSLHByb2plY3RzL3twcm9qZWN0fS9nbG9iYWwv", + "bmV0d29ya3Mve25ldHdvcmt96kF4CiFjbG91ZGttcy5nb29nbGVhcGlzLmNv", + "bS9DcnlwdG9LZXkSU3Byb2plY3RzL3twcm9qZWN0fS9sb2NhdGlvbnMve2xv", + "Y2F0aW9ufS9rZXlSaW5ncy97a2V5X3Jpbmd9L2NyeXB0b0tleXMve2NyeXB0", + "b19rZXl96kF3Cihjb21wdXRlLmdvb2dsZWFwaXMuY29tL1NlcnZpY2VBdHRh", + "Y2htZW50Ektwcm9qZWN0cy97cHJvamVjdH0vcmVnaW9ucy97cmVnaW9ufS9z", + "ZXJ2aWNlQXR0YWNobWVudHMve3NlcnZpY2VfYXR0YWNobWVudH1iBnByb3Rv", + "Mw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.FieldInfoReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Cloud.AlloyDb.V1.CsqlResourcesReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Type.DateReflection.Descriptor, global::Google.Type.DayofweekReflection.Descriptor, global::Google.Type.TimeofdayReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Cloud.AlloyDb.V1.InstanceView), typeof(global::Google.Cloud.AlloyDb.V1.ClusterView), typeof(global::Google.Cloud.AlloyDb.V1.DatabaseVersion), typeof(global::Google.Cloud.AlloyDb.V1.SubscriptionType), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -515,6 +516,10 @@ public enum DatabaseVersion { /// The database version is Postgres 17. /// [pbr::OriginalName("POSTGRES_17")] Postgres17 = 5, + /// + /// The database version is Postgres 18. + /// + [pbr::OriginalName("POSTGRES_18")] Postgres18 = 6, } /// diff --git a/generator-input/pipeline-state.json b/generator-input/pipeline-state.json index e0a780edec41..643e433951b7 100644 --- a/generator-input/pipeline-state.json +++ b/generator-input/pipeline-state.json @@ -217,7 +217,7 @@ "generationAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseTimestamp": "2026-03-05T07:42:15.441334858Z", - "lastGeneratedCommit": "d90d23fa13599f525245fe446086f83cf8863ca4", + "lastGeneratedCommit": "08f4bdd37d79f29c7b6a7082c1c73ef78de4b898", "lastReleasedCommit": "938377b80d3444b91cd329164b0c10507f07f9e8", "apiPaths": [ "google/cloud/alloydb/v1" From 5902e6232999c94d994c9ed0d3249e9155875ac1 Mon Sep 17 00:00:00 2001 From: Google Cloud SDK Librarian Date: Wed, 10 Jun 2026 07:09:51 +0000 Subject: [PATCH 2/6] regen: Regenerate Google.Cloud.AlloyDb.V1Alpha at API commit 08f4bdd feat: add POSTGRES_18 to supported database versions PiperOrigin-RevId: 929464697 Source-Link: https://github.com/googleapis/googleapis/commit/08f4bdd37d79f29c7b6a7082c1c73ef78de4b898 --- generator-input/pipeline-state.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator-input/pipeline-state.json b/generator-input/pipeline-state.json index 643e433951b7..17c6c3d23282 100644 --- a/generator-input/pipeline-state.json +++ b/generator-input/pipeline-state.json @@ -232,7 +232,7 @@ "generationAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseTimestamp": "2026-03-05T07:43:25.884957452Z", - "lastGeneratedCommit": "d90d23fa13599f525245fe446086f83cf8863ca4", + "lastGeneratedCommit": "08f4bdd37d79f29c7b6a7082c1c73ef78de4b898", "lastReleasedCommit": "938377b80d3444b91cd329164b0c10507f07f9e8", "apiPaths": [ "google/cloud/alloydb/v1alpha" From d2662979f9f74a67f15ed0ed358fe8587b1a5968 Mon Sep 17 00:00:00 2001 From: Google Cloud SDK Librarian Date: Wed, 10 Jun 2026 07:10:35 +0000 Subject: [PATCH 3/6] regen: Regenerate Google.Cloud.AlloyDb.V1Beta at API commit 08f4bdd feat: add POSTGRES_18 to supported database versions PiperOrigin-RevId: 929464697 Source-Link: https://github.com/googleapis/googleapis/commit/08f4bdd37d79f29c7b6a7082c1c73ef78de4b898 --- generator-input/pipeline-state.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator-input/pipeline-state.json b/generator-input/pipeline-state.json index 17c6c3d23282..721671dddf05 100644 --- a/generator-input/pipeline-state.json +++ b/generator-input/pipeline-state.json @@ -247,7 +247,7 @@ "generationAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseTimestamp": "2026-03-05T07:45:44.483594420Z", - "lastGeneratedCommit": "d90d23fa13599f525245fe446086f83cf8863ca4", + "lastGeneratedCommit": "08f4bdd37d79f29c7b6a7082c1c73ef78de4b898", "lastReleasedCommit": "938377b80d3444b91cd329164b0c10507f07f9e8", "apiPaths": [ "google/cloud/alloydb/v1beta" From 59ad9ff77fc6336cf937353870e7b07950117800 Mon Sep 17 00:00:00 2001 From: Google Cloud SDK Librarian Date: Wed, 10 Jun 2026 07:12:09 +0000 Subject: [PATCH 4/6] regen: Regenerate Google.Cloud.ConfidentialComputing.V1 at API commit 00bb3db feat: add instance field to VerifyAttestationRequest PiperOrigin-RevId: 929538916 Source-Link: https://github.com/googleapis/googleapis/commit/00bb3db8a8cc88f0755e872856462b902d6dd8c4 --- ...yAttestationRequestObjectAsyncSnippet.g.cs | 1 + ...VerifyAttestationRequestObjectSnippet.g.cs | 1 + ...google.cloud.confidentialcomputing.v1.json | 8 +- .../ConfidentialComputingClientSnippets.g.cs | 2 + .../Service.g.cs | 357 ++++++++++-------- .../ServiceResourceNames.g.cs | 251 ++++++++++++ generator-input/pipeline-state.json | 2 +- 7 files changed, 461 insertions(+), 161 deletions(-) diff --git a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectAsyncSnippet.g.cs b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectAsyncSnippet.g.cs index 603f91cb8e9b..d4d767093c66 100644 --- a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectAsyncSnippet.g.cs +++ b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectAsyncSnippet.g.cs @@ -45,6 +45,7 @@ public async Task VerifyAttestationRequestObjectAsync() TdCcel = new TdxCcelAttestation(), Attester = "", NvidiaAttestation = new NvidiaAttestation(), + InstanceAsInstanceName = InstanceName.FromProjectZoneInstance("[PROJECT]", "[ZONE]", "[INSTANCE]"), }; // Make the request VerifyAttestationResponse response = await confidentialComputingClient.VerifyAttestationAsync(request); diff --git a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectSnippet.g.cs b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectSnippet.g.cs index 38f1cff41f73..09f392fdbc91 100644 --- a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectSnippet.g.cs +++ b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/ConfidentialComputingClient.VerifyAttestationRequestObjectSnippet.g.cs @@ -44,6 +44,7 @@ public void VerifyAttestationRequestObject() TdCcel = new TdxCcelAttestation(), Attester = "", NvidiaAttestation = new NvidiaAttestation(), + InstanceAsInstanceName = InstanceName.FromProjectZoneInstance("[PROJECT]", "[ZONE]", "[INSTANCE]"), }; // Make the request VerifyAttestationResponse response = confidentialComputingClient.VerifyAttestation(request); diff --git a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json index b69d4c890f32..ca4626108715 100644 --- a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json +++ b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.GeneratedSnippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json @@ -351,12 +351,12 @@ "segments": [ { "start": 20, - "end": 51, + "end": 52, "type": "FULL" }, { "start": 34, - "end": 49, + "end": 50, "type": "SHORT" } ] @@ -400,12 +400,12 @@ "segments": [ { "start": 20, - "end": 52, + "end": 53, "type": "FULL" }, { "start": 35, - "end": 50, + "end": 51, "type": "SHORT" } ] diff --git a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.Snippets/ConfidentialComputingClientSnippets.g.cs b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.Snippets/ConfidentialComputingClientSnippets.g.cs index 27e9cedcf385..8c8a84d46c64 100644 --- a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.Snippets/ConfidentialComputingClientSnippets.g.cs +++ b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1.Snippets/ConfidentialComputingClientSnippets.g.cs @@ -133,6 +133,7 @@ public void VerifyAttestationRequestObject() TdCcel = new TdxCcelAttestation(), Attester = "", NvidiaAttestation = new NvidiaAttestation(), + InstanceAsInstanceName = InstanceName.FromProjectZoneInstance("[PROJECT]", "[ZONE]", "[INSTANCE]"), }; // Make the request VerifyAttestationResponse response = confidentialComputingClient.VerifyAttestation(request); @@ -157,6 +158,7 @@ public async Task VerifyAttestationRequestObjectAsync() TdCcel = new TdxCcelAttestation(), Attester = "", NvidiaAttestation = new NvidiaAttestation(), + InstanceAsInstanceName = InstanceName.FromProjectZoneInstance("[PROJECT]", "[ZONE]", "[INSTANCE]"), }; // Make the request VerifyAttestationResponse response = await confidentialComputingClient.VerifyAttestationAsync(request); diff --git a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/Service.g.cs b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/Service.g.cs index 6c44e0799f09..846009cbbe69 100644 --- a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/Service.g.cs +++ b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/Service.g.cs @@ -40,7 +40,7 @@ static ServiceReflection() { "ZXN0EjkKBnBhcmVudBgBIAEoCUIp4EEC+kEjCiFsb2NhdGlvbnMuZ29vZ2xl", "YXBpcy5jb20vTG9jYXRpb24SSAoJY2hhbGxlbmdlGAIgASgLMjAuZ29vZ2xl", "LmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5DaGFsbGVuZ2VCA+BB", - "AiKSBgoYVmVyaWZ5QXR0ZXN0YXRpb25SZXF1ZXN0ElEKB3RkX2NjZWwYBiAB", + "AiLNBgoYVmVyaWZ5QXR0ZXN0YXRpb25SZXF1ZXN0ElEKB3RkX2NjZWwYBiAB", "KAsyOS5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLlRk", "eENjZWxBdHRlc3RhdGlvbkID4EEBSAASXAoTc2V2X3NucF9hdHRlc3RhdGlv", "bhgHIAEoCzI4Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcu", @@ -56,167 +56,170 @@ static ServiceReflection() { "bGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLkNvbmZpZGVudGlh", "bFNwYWNlSW5mb0ID4EEBEk8KDXRva2VuX29wdGlvbnMYBSABKAsyMy5nb29n", "bGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLlRva2VuT3B0aW9u", - "c0ID4EEBEhUKCGF0dGVzdGVyGAggASgJQgPgQQFCEQoPdGVlX2F0dGVzdGF0", - "aW9uQhQKEmRldmljZV9hdHRlc3RhdGlvbiK7CgoRTnZpZGlhQXR0ZXN0YXRp", - "b24SZAoDc3B0GAEgASgLMlUuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNv", - "bXB1dGluZy52MS5OdmlkaWFBdHRlc3RhdGlvbi5TaW5nbGVQYXNzdGhyb3Vn", - "aEF0dGVzdGF0aW9uSAASYgoFcHBjaWUYAiABKAsyUS5nb29nbGUuY2xvdWQu", - "Y29uZmlkZW50aWFsY29tcHV0aW5nLnYxLk52aWRpYUF0dGVzdGF0aW9uLlBy", - "b3RlY3RlZFBjaWVBdHRlc3RhdGlvbkgAEmwKA21wdBgDIAEoCzJdLmdvb2ds", + "c0ID4EEBEhUKCGF0dGVzdGVyGAggASgJQgPgQQESOQoIaW5zdGFuY2UYCiAB", + "KAlCJ+BBAfpBIQofY29tcHV0ZS5nb29nbGVhcGlzLmNvbS9JbnN0YW5jZUIR", + "Cg90ZWVfYXR0ZXN0YXRpb25CFAoSZGV2aWNlX2F0dGVzdGF0aW9uIrsKChFO", + "dmlkaWFBdHRlc3RhdGlvbhJkCgNzcHQYASABKAsyVS5nb29nbGUuY2xvdWQu", + "Y29uZmlkZW50aWFsY29tcHV0aW5nLnYxLk52aWRpYUF0dGVzdGF0aW9uLlNp", + "bmdsZVBhc3N0aHJvdWdoQXR0ZXN0YXRpb25IABJiCgVwcGNpZRgCIAEoCzJR", + "Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuTnZpZGlh", + "QXR0ZXN0YXRpb24uUHJvdGVjdGVkUGNpZUF0dGVzdGF0aW9uSAASbAoDbXB0", + "GAMgASgLMl0uZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52", + "MS5OdmlkaWFBdHRlc3RhdGlvbi5NdWx0aUdwdVNlY3VyZVBhc3N0aHJvdWdo", + "QXR0ZXN0YXRpb25IABqUAgoHR3B1SW5mbxIRCgR1dWlkGAEgASgJQgPgQQES", + "GwoOZHJpdmVyX3ZlcnNpb24YAiABKAlCA+BBARIaCg12Ymlvc192ZXJzaW9u", + "GAMgASgJQgPgQQEScAoVZ3B1X2FyY2hpdGVjdHVyZV90eXBlGAQgASgOMkwu", + "Z29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5OdmlkaWFB", + "dHRlc3RhdGlvbi5HcHVBcmNoaXRlY3R1cmVUeXBlQgPgQQESKgodYXR0ZXN0", + "YXRpb25fY2VydGlmaWNhdGVfY2hhaW4YBSABKAxCA+BBARIfChJhdHRlc3Rh", + "dGlvbl9yZXBvcnQYBiABKAxCA+BBARpsCgpTd2l0Y2hJbmZvEhEKBHV1aWQY", + "ASABKAlCA+BBARIqCh1hdHRlc3RhdGlvbl9jZXJ0aWZpY2F0ZV9jaGFpbhgC", + "IAEoDEID4EEBEh8KEmF0dGVzdGF0aW9uX3JlcG9ydBgDIAEoDEID4EEBGngK", + "HFNpbmdsZVBhc3N0aHJvdWdoQXR0ZXN0YXRpb24SWAoJZ3B1X3F1b3RlGAEg", + "ASgLMkAuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5O", + "dmlkaWFBdHRlc3RhdGlvbi5HcHVJbmZvQgPgQQEa1gEKGFByb3RlY3RlZFBj", + "aWVBdHRlc3RhdGlvbhJZCgpncHVfcXVvdGVzGAEgAygLMkAuZ29vZ2xlLmNs", + "b3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5OdmlkaWFBdHRlc3RhdGlv", + "bi5HcHVJbmZvQgPgQQESXwoNc3dpdGNoX3F1b3RlcxgCIAMoCzJDLmdvb2ds", "ZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuTnZpZGlhQXR0ZXN0", - "YXRpb24uTXVsdGlHcHVTZWN1cmVQYXNzdGhyb3VnaEF0dGVzdGF0aW9uSAAa", - "lAIKB0dwdUluZm8SEQoEdXVpZBgBIAEoCUID4EEBEhsKDmRyaXZlcl92ZXJz", - "aW9uGAIgASgJQgPgQQESGgoNdmJpb3NfdmVyc2lvbhgDIAEoCUID4EEBEnAK", - "FWdwdV9hcmNoaXRlY3R1cmVfdHlwZRgEIAEoDjJMLmdvb2dsZS5jbG91ZC5j", - "b25maWRlbnRpYWxjb21wdXRpbmcudjEuTnZpZGlhQXR0ZXN0YXRpb24uR3B1", - "QXJjaGl0ZWN0dXJlVHlwZUID4EEBEioKHWF0dGVzdGF0aW9uX2NlcnRpZmlj", - "YXRlX2NoYWluGAUgASgMQgPgQQESHwoSYXR0ZXN0YXRpb25fcmVwb3J0GAYg", - "ASgMQgPgQQEabAoKU3dpdGNoSW5mbxIRCgR1dWlkGAEgASgJQgPgQQESKgod", - "YXR0ZXN0YXRpb25fY2VydGlmaWNhdGVfY2hhaW4YAiABKAxCA+BBARIfChJh", - "dHRlc3RhdGlvbl9yZXBvcnQYAyABKAxCA+BBARp4ChxTaW5nbGVQYXNzdGhy", - "b3VnaEF0dGVzdGF0aW9uElgKCWdwdV9xdW90ZRgBIAEoCzJALmdvb2dsZS5j", - "bG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuTnZpZGlhQXR0ZXN0YXRp", - "b24uR3B1SW5mb0ID4EEBGtYBChhQcm90ZWN0ZWRQY2llQXR0ZXN0YXRpb24S", - "WQoKZ3B1X3F1b3RlcxgBIAMoCzJALmdvb2dsZS5jbG91ZC5jb25maWRlbnRp", - "YWxjb21wdXRpbmcudjEuTnZpZGlhQXR0ZXN0YXRpb24uR3B1SW5mb0ID4EEB", - "El8KDXN3aXRjaF9xdW90ZXMYAiADKAsyQy5nb29nbGUuY2xvdWQuY29uZmlk", - "ZW50aWFsY29tcHV0aW5nLnYxLk52aWRpYUF0dGVzdGF0aW9uLlN3aXRjaElu", - "Zm9CA+BBARqBAQokTXVsdGlHcHVTZWN1cmVQYXNzdGhyb3VnaEF0dGVzdGF0", - "aW9uElkKCmdwdV9xdW90ZXMYASADKAsyQC5nb29nbGUuY2xvdWQuY29uZmlk", - "ZW50aWFsY29tcHV0aW5nLnYxLk52aWRpYUF0dGVzdGF0aW9uLkdwdUluZm9C", - "A+BBASKDAQoTR3B1QXJjaGl0ZWN0dXJlVHlwZRIlCiFHUFVfQVJDSElURUNU", - "VVJFX1RZUEVfVU5TUEVDSUZJRUQQABIgChxHUFVfQVJDSElURUNUVVJFX1RZ", - "UEVfSE9QUEVSEAgSIwofR1BVX0FSQ0hJVEVDVFVSRV9UWVBFX0JMQUNLV0VM", - "TBAKQgwKCmNjX2ZlYXR1cmUigwEKElRkeENjZWxBdHRlc3RhdGlvbhIcCg9j", - "Y2VsX2FjcGlfdGFibGUYASABKAxCA+BBARIWCgljY2VsX2RhdGEYAiABKAxC", - "A+BBARIgChNjYW5vbmljYWxfZXZlbnRfbG9nGAMgASgMQgPgQQESFQoIdGRf", - "cXVvdGUYBCABKAxCA+BBASI/ChFTZXZTbnBBdHRlc3RhdGlvbhITCgZyZXBv", - "cnQYASABKAxCA+BBARIVCghhdXhfYmxvYhgCIAEoDEID4EEBImwKGVZlcmlm", - "eUF0dGVzdGF0aW9uUmVzcG9uc2USHgoRb2lkY19jbGFpbXNfdG9rZW4YAiAB", - "KAlCA+BBAxIvCg5wYXJ0aWFsX2Vycm9ycxgDIAMoCzISLmdvb2dsZS5ycGMu", - "U3RhdHVzQgPgQQMiMwoOR2NwQ3JlZGVudGlhbHMSIQoZc2VydmljZV9hY2Nv", - "dW50X2lkX3Rva2VucxgCIAMoCSKFAgoMVG9rZW5PcHRpb25zEmkKGmF3c19w", - "cmluY2lwYWxfdGFnc19vcHRpb25zGAQgASgLMj4uZ29vZ2xlLmNsb3VkLmNv", - "bmZpZGVudGlhbGNvbXB1dGluZy52MS5Bd3NQcmluY2lwYWxUYWdzT3B0aW9u", - "c0ID4EEBSAASFQoIYXVkaWVuY2UYASABKAlCA+BBARISCgVub25jZRgCIAMo", - "CUID4EEBEkkKCnRva2VuX3R5cGUYAyABKA4yMC5nb29nbGUuY2xvdWQuY29u", - "ZmlkZW50aWFsY29tcHV0aW5nLnYxLlRva2VuVHlwZUID4EEBQhQKEnRva2Vu", - "X3R5cGVfb3B0aW9ucyL2AgoXQXdzUHJpbmNpcGFsVGFnc09wdGlvbnMSeAoW", - "YWxsb3dlZF9wcmluY2lwYWxfdGFncxgBIAEoCzJTLmdvb2dsZS5jbG91ZC5j", - "b25maWRlbnRpYWxjb21wdXRpbmcudjEuQXdzUHJpbmNpcGFsVGFnc09wdGlv", - "bnMuQWxsb3dlZFByaW5jaXBhbFRhZ3NCA+BBARrgAQoUQWxsb3dlZFByaW5j", - "aXBhbFRhZ3MSlQEKGmNvbnRhaW5lcl9pbWFnZV9zaWduYXR1cmVzGAEgASgL", - "MmwuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5Bd3NQ", - "cmluY2lwYWxUYWdzT3B0aW9ucy5BbGxvd2VkUHJpbmNpcGFsVGFncy5Db250", - "YWluZXJJbWFnZVNpZ25hdHVyZXNCA+BBARowChhDb250YWluZXJJbWFnZVNp", - "Z25hdHVyZXMSFAoHa2V5X2lkcxgBIAMoCUID4EEBIo8DCg5UcG1BdHRlc3Rh", - "dGlvbhJLCgZxdW90ZXMYASADKAsyOy5nb29nbGUuY2xvdWQuY29uZmlkZW50", - "aWFsY29tcHV0aW5nLnYxLlRwbUF0dGVzdGF0aW9uLlF1b3RlEhUKDXRjZ19l", - "dmVudF9sb2cYAiABKAwSGwoTY2Fub25pY2FsX2V2ZW50X2xvZxgDIAEoDBIP", - "Cgdha19jZXJ0GAQgASgMEhIKCmNlcnRfY2hhaW4YBSADKAwa1gEKBVF1b3Rl", - "EhEKCWhhc2hfYWxnbxgBIAEoBRJeCgpwY3JfdmFsdWVzGAIgAygLMkouZ29v", - "Z2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5UcG1BdHRlc3Rh", - "dGlvbi5RdW90ZS5QY3JWYWx1ZXNFbnRyeRIRCglyYXdfcXVvdGUYAyABKAwS", - "FQoNcmF3X3NpZ25hdHVyZRgEIAEoDBowCg5QY3JWYWx1ZXNFbnRyeRILCgNr", - "ZXkYASABKAUSDQoFdmFsdWUYAiABKAw6AjgBImoKFUNvbmZpZGVudGlhbFNw", - "YWNlSW5mbxJRCg9zaWduZWRfZW50aXRpZXMYASADKAsyMy5nb29nbGUuY2xv", - "dWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLlNpZ25lZEVudGl0eUID4EEB", - "IncKDFNpZ25lZEVudGl0eRJnChpjb250YWluZXJfaW1hZ2Vfc2lnbmF0dXJl", - "cxgBIAMoCzI+Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcu", - "djEuQ29udGFpbmVySW1hZ2VTaWduYXR1cmVCA+BBASKvAQoXQ29udGFpbmVy", - "SW1hZ2VTaWduYXR1cmUSFAoHcGF5bG9hZBgBIAEoDEID4EEBEhYKCXNpZ25h", - "dHVyZRgCIAEoDEID4EEBEhcKCnB1YmxpY19rZXkYAyABKAxCA+BBARJNCgdz", - "aWdfYWxnGAQgASgOMjcuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1", - "dGluZy52MS5TaWduaW5nQWxnb3JpdGhtQgPgQQEi8QgKHlZlcmlmeUNvbmZp", - "ZGVudGlhbFNwYWNlUmVxdWVzdBJRCgd0ZF9jY2VsGAMgASgLMjkuZ29vZ2xl", - "LmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5UZHhDY2VsQXR0ZXN0", - "YXRpb25CA+BBBEgAElUKD3RwbV9hdHRlc3RhdGlvbhgEIAEoCzI1Lmdvb2ds", - "ZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuVHBtQXR0ZXN0YXRp", - "b25CA+BBBEgAEkkKCWNoYWxsZW5nZRgBIAEoCUI24EEC+kEwCi5jb25maWRl", - "bnRpYWxjb21wdXRpbmcuZ29vZ2xlYXBpcy5jb20vQ2hhbGxlbmdlElMKD2dj", - "cF9jcmVkZW50aWFscxgCIAEoCzI1Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRp", - "YWxjb21wdXRpbmcudjEuR2NwQ3JlZGVudGlhbHNCA+BBARJRCg9zaWduZWRf", - "ZW50aXRpZXMYBSADKAsyMy5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29t", - "cHV0aW5nLnYxLlNpZ25lZEVudGl0eUID4EEBEl4KFWdjZV9zaGllbGRlZF9p", - "ZGVudGl0eRgGIAEoCzI6Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21w", - "dXRpbmcudjEuR2NlU2hpZWxkZWRJZGVudGl0eUID4EEBEnQKB29wdGlvbnMY", - "ByABKAsyXi5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYx", - "LlZlcmlmeUNvbmZpZGVudGlhbFNwYWNlUmVxdWVzdC5Db25maWRlbnRpYWxT", - "cGFjZU9wdGlvbnNCA+BBARJZChJudmlkaWFfYXR0ZXN0YXRpb24YCCABKAsy", - "OC5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLk52aWRp", - "YUF0dGVzdGF0aW9uQgPgQQEa7QIKGENvbmZpZGVudGlhbFNwYWNlT3B0aW9u", - "cxJpChphd3NfcHJpbmNpcGFsX3RhZ3Nfb3B0aW9ucxgFIAEoCzI+Lmdvb2ds", - "ZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuQXdzUHJpbmNpcGFs", - "VGFnc09wdGlvbnNCA+BBAUgAEhUKCGF1ZGllbmNlGAEgASgJQgPgQQESTwoN", - "dG9rZW5fcHJvZmlsZRgCIAEoDjIzLmdvb2dsZS5jbG91ZC5jb25maWRlbnRp", - "YWxjb21wdXRpbmcudjEuVG9rZW5Qcm9maWxlQgPgQQESEgoFbm9uY2UYAyAD", - "KAlCA+BBARJRCg5zaWduYXR1cmVfdHlwZRgEIAEoDjI0Lmdvb2dsZS5jbG91", - "ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuU2lnbmF0dXJlVHlwZUID4EEB", - "QhcKFXRva2VuX3Byb2ZpbGVfb3B0aW9uc0IRCg90ZWVfYXR0ZXN0YXRpb24i", - "RwoTR2NlU2hpZWxkZWRJZGVudGl0eRIUCgdha19jZXJ0GAEgASgMQgPgQQES", - "GgoNYWtfY2VydF9jaGFpbhgCIAMoDEID4EEBInIKH1ZlcmlmeUNvbmZpZGVu", - "dGlhbFNwYWNlUmVzcG9uc2USHgoRYXR0ZXN0YXRpb25fdG9rZW4YASABKAlC", - "A+BBAxIvCg5wYXJ0aWFsX2Vycm9ycxgCIAMoCzISLmdvb2dsZS5ycGMuU3Rh", - "dHVzQgPgQQMi2QMKHFZlcmlmeUNvbmZpZGVudGlhbEdrZVJlcXVlc3QSUAoP", - "dHBtX2F0dGVzdGF0aW9uGAIgASgLMjUuZ29vZ2xlLmNsb3VkLmNvbmZpZGVu", - "dGlhbGNvbXB1dGluZy52MS5UcG1BdHRlc3RhdGlvbkgAEkkKCWNoYWxsZW5n", - "ZRgBIAEoCUI24EEC+kEwCi5jb25maWRlbnRpYWxjb21wdXRpbmcuZ29vZ2xl", - "YXBpcy5jb20vQ2hhbGxlbmdlEnAKB29wdGlvbnMYAyABKAsyWi5nb29nbGUu", - "Y2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLlZlcmlmeUNvbmZpZGVu", - "dGlhbEdrZVJlcXVlc3QuQ29uZmlkZW50aWFsR2tlT3B0aW9uc0ID4EEBGpYB", - "ChZDb25maWRlbnRpYWxHa2VPcHRpb25zEhUKCGF1ZGllbmNlGAEgASgJQgPg", - "QQESEgoFbm9uY2UYAyADKAlCA+BBARJRCg5zaWduYXR1cmVfdHlwZRgEIAEo", - "DjI0Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuU2ln", - "bmF0dXJlVHlwZUID4EEBQhEKD3RlZV9hdHRlc3RhdGlvbiI/Ch1WZXJpZnlD", - "b25maWRlbnRpYWxHa2VSZXNwb25zZRIeChFhdHRlc3RhdGlvbl90b2tlbhgB", - "IAEoCUID4EEDKn8KEFNpZ25pbmdBbGdvcml0aG0SIQodU0lHTklOR19BTEdP", - "UklUSE1fVU5TUEVDSUZJRUQQABIVChFSU0FTU0FfUFNTX1NIQTI1NhABEhoK", - "FlJTQVNTQV9QS0NTMVYxNV9TSEEyNTYQAhIVChFFQ0RTQV9QMjU2X1NIQTI1", - "NhADKo4BCglUb2tlblR5cGUSGgoWVE9LRU5fVFlQRV9VTlNQRUNJRklFRBAA", - "EhMKD1RPS0VOX1RZUEVfT0lEQxABEhIKDlRPS0VOX1RZUEVfUEtJEAISGgoW", - "VE9LRU5fVFlQRV9MSU1JVEVEX0FXUxADEiAKHFRPS0VOX1RZUEVfQVdTX1BS", - "SU5DSVBBTFRBR1MQBCpgCg1TaWduYXR1cmVUeXBlEh4KGlNJR05BVFVSRV9U", - "WVBFX1VOU1BFQ0lGSUVEEAASFwoTU0lHTkFUVVJFX1RZUEVfT0lEQxABEhYK", - "ElNJR05BVFVSRV9UWVBFX1BLSRACKmMKDFRva2VuUHJvZmlsZRIdChlUT0tF", - "Tl9QUk9GSUxFX1VOU1BFQ0lGSUVEEAASHQoZVE9LRU5fUFJPRklMRV9ERUZB", - "VUxUX0VBVBABEhUKEVRPS0VOX1BST0ZJTEVfQVdTEAIytQgKFUNvbmZpZGVu", - "dGlhbENvbXB1dGluZxLYAQoPQ3JlYXRlQ2hhbGxlbmdlEj0uZ29vZ2xlLmNs", - "b3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5DcmVhdGVDaGFsbGVuZ2VS", - "ZXF1ZXN0GjAuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52", - "MS5DaGFsbGVuZ2UiVNpBEHBhcmVudCxjaGFsbGVuZ2WC0+STAjsiLi92MS97", - "cGFyZW50PXByb2plY3RzLyovbG9jYXRpb25zLyp9L2NoYWxsZW5nZXM6CWNo", - "YWxsZW5nZRLoAQoRVmVyaWZ5QXR0ZXN0YXRpb24SPy5nb29nbGUuY2xvdWQu", - "Y29uZmlkZW50aWFsY29tcHV0aW5nLnYxLlZlcmlmeUF0dGVzdGF0aW9uUmVx", - "dWVzdBpALmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEu", - "VmVyaWZ5QXR0ZXN0YXRpb25SZXNwb25zZSJQgtPkkwJKIkUvdjEve2NoYWxs", - "ZW5nZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2NoYWxsZW5nZXMvKn06dmVy", - "aWZ5QXR0ZXN0YXRpb246ASoSgAIKF1ZlcmlmeUNvbmZpZGVudGlhbFNwYWNl", - "EkUuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5WZXJp", - "ZnlDb25maWRlbnRpYWxTcGFjZVJlcXVlc3QaRi5nb29nbGUuY2xvdWQuY29u", - "ZmlkZW50aWFsY29tcHV0aW5nLnYxLlZlcmlmeUNvbmZpZGVudGlhbFNwYWNl", - "UmVzcG9uc2UiVoLT5JMCUCJLL3YxL3tjaGFsbGVuZ2U9cHJvamVjdHMvKi9s", - "b2NhdGlvbnMvKi9jaGFsbGVuZ2VzLyp9OnZlcmlmeUNvbmZpZGVudGlhbFNw", - "YWNlOgEqEvgBChVWZXJpZnlDb25maWRlbnRpYWxHa2USQy5nb29nbGUuY2xv", - "dWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLlZlcmlmeUNvbmZpZGVudGlh", - "bEdrZVJlcXVlc3QaRC5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0", - "aW5nLnYxLlZlcmlmeUNvbmZpZGVudGlhbEdrZVJlc3BvbnNlIlSC0+STAk4i", - "SS92MS97Y2hhbGxlbmdlPXByb2plY3RzLyovbG9jYXRpb25zLyovY2hhbGxl", - "bmdlcy8qfTp2ZXJpZnlDb25maWRlbnRpYWxHa2U6ASoaWMpBJGNvbmZpZGVu", - "dGlhbGNvbXB1dGluZy5nb29nbGVhcGlzLmNvbdJBLmh0dHBzOi8vd3d3Lmdv", - "b2dsZWFwaXMuY29tL2F1dGgvY2xvdWQtcGxhdGZvcm1ClwIKKWNvbS5nb29n", - "bGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxQgxTZXJ2aWNlUHJv", - "dG9QAVpfY2xvdWQuZ29vZ2xlLmNvbS9nby9jb25maWRlbnRpYWxjb21wdXRp", - "bmcvYXBpdjEvY29uZmlkZW50aWFsY29tcHV0aW5ncGI7Y29uZmlkZW50aWFs", - "Y29tcHV0aW5ncGKqAiVHb29nbGUuQ2xvdWQuQ29uZmlkZW50aWFsQ29tcHV0", - "aW5nLlYxygIlR29vZ2xlXENsb3VkXENvbmZpZGVudGlhbENvbXB1dGluZ1xW", - "MeoCKEdvb2dsZTo6Q2xvdWQ6OkNvbmZpZGVudGlhbENvbXB1dGluZzo6VjFi", - "BnByb3RvMw==")); + "YXRpb24uU3dpdGNoSW5mb0ID4EEBGoEBCiRNdWx0aUdwdVNlY3VyZVBhc3N0", + "aHJvdWdoQXR0ZXN0YXRpb24SWQoKZ3B1X3F1b3RlcxgBIAMoCzJALmdvb2ds", + "ZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuTnZpZGlhQXR0ZXN0", + "YXRpb24uR3B1SW5mb0ID4EEBIoMBChNHcHVBcmNoaXRlY3R1cmVUeXBlEiUK", + "IUdQVV9BUkNISVRFQ1RVUkVfVFlQRV9VTlNQRUNJRklFRBAAEiAKHEdQVV9B", + "UkNISVRFQ1RVUkVfVFlQRV9IT1BQRVIQCBIjCh9HUFVfQVJDSElURUNUVVJF", + "X1RZUEVfQkxBQ0tXRUxMEApCDAoKY2NfZmVhdHVyZSKDAQoSVGR4Q2NlbEF0", + "dGVzdGF0aW9uEhwKD2NjZWxfYWNwaV90YWJsZRgBIAEoDEID4EEBEhYKCWNj", + "ZWxfZGF0YRgCIAEoDEID4EEBEiAKE2Nhbm9uaWNhbF9ldmVudF9sb2cYAyAB", + "KAxCA+BBARIVCgh0ZF9xdW90ZRgEIAEoDEID4EEBIj8KEVNldlNucEF0dGVz", + "dGF0aW9uEhMKBnJlcG9ydBgBIAEoDEID4EEBEhUKCGF1eF9ibG9iGAIgASgM", + "QgPgQQEibAoZVmVyaWZ5QXR0ZXN0YXRpb25SZXNwb25zZRIeChFvaWRjX2Ns", + "YWltc190b2tlbhgCIAEoCUID4EEDEi8KDnBhcnRpYWxfZXJyb3JzGAMgAygL", + "MhIuZ29vZ2xlLnJwYy5TdGF0dXNCA+BBAyIzCg5HY3BDcmVkZW50aWFscxIh", + "ChlzZXJ2aWNlX2FjY291bnRfaWRfdG9rZW5zGAIgAygJIoUCCgxUb2tlbk9w", + "dGlvbnMSaQoaYXdzX3ByaW5jaXBhbF90YWdzX29wdGlvbnMYBCABKAsyPi5n", + "b29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLkF3c1ByaW5j", + "aXBhbFRhZ3NPcHRpb25zQgPgQQFIABIVCghhdWRpZW5jZRgBIAEoCUID4EEB", + "EhIKBW5vbmNlGAIgAygJQgPgQQESSQoKdG9rZW5fdHlwZRgDIAEoDjIwLmdv", + "b2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuVG9rZW5UeXBl", + "QgPgQQFCFAoSdG9rZW5fdHlwZV9vcHRpb25zIvYCChdBd3NQcmluY2lwYWxU", + "YWdzT3B0aW9ucxJ4ChZhbGxvd2VkX3ByaW5jaXBhbF90YWdzGAEgASgLMlMu", + "Z29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5Bd3NQcmlu", + "Y2lwYWxUYWdzT3B0aW9ucy5BbGxvd2VkUHJpbmNpcGFsVGFnc0ID4EEBGuAB", + "ChRBbGxvd2VkUHJpbmNpcGFsVGFncxKVAQoaY29udGFpbmVyX2ltYWdlX3Np", + "Z25hdHVyZXMYASABKAsybC5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29t", + "cHV0aW5nLnYxLkF3c1ByaW5jaXBhbFRhZ3NPcHRpb25zLkFsbG93ZWRQcmlu", + "Y2lwYWxUYWdzLkNvbnRhaW5lckltYWdlU2lnbmF0dXJlc0ID4EEBGjAKGENv", + "bnRhaW5lckltYWdlU2lnbmF0dXJlcxIUCgdrZXlfaWRzGAEgAygJQgPgQQEi", + "jwMKDlRwbUF0dGVzdGF0aW9uEksKBnF1b3RlcxgBIAMoCzI7Lmdvb2dsZS5j", + "bG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuVHBtQXR0ZXN0YXRpb24u", + "UXVvdGUSFQoNdGNnX2V2ZW50X2xvZxgCIAEoDBIbChNjYW5vbmljYWxfZXZl", + "bnRfbG9nGAMgASgMEg8KB2FrX2NlcnQYBCABKAwSEgoKY2VydF9jaGFpbhgF", + "IAMoDBrWAQoFUXVvdGUSEQoJaGFzaF9hbGdvGAEgASgFEl4KCnBjcl92YWx1", + "ZXMYAiADKAsySi5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5n", + "LnYxLlRwbUF0dGVzdGF0aW9uLlF1b3RlLlBjclZhbHVlc0VudHJ5EhEKCXJh", + "d19xdW90ZRgDIAEoDBIVCg1yYXdfc2lnbmF0dXJlGAQgASgMGjAKDlBjclZh", + "bHVlc0VudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoDDoCOAEiagoV", + "Q29uZmlkZW50aWFsU3BhY2VJbmZvElEKD3NpZ25lZF9lbnRpdGllcxgBIAMo", + "CzIzLmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuU2ln", + "bmVkRW50aXR5QgPgQQEidwoMU2lnbmVkRW50aXR5EmcKGmNvbnRhaW5lcl9p", + "bWFnZV9zaWduYXR1cmVzGAEgAygLMj4uZ29vZ2xlLmNsb3VkLmNvbmZpZGVu", + "dGlhbGNvbXB1dGluZy52MS5Db250YWluZXJJbWFnZVNpZ25hdHVyZUID4EEB", + "Iq8BChdDb250YWluZXJJbWFnZVNpZ25hdHVyZRIUCgdwYXlsb2FkGAEgASgM", + "QgPgQQESFgoJc2lnbmF0dXJlGAIgASgMQgPgQQESFwoKcHVibGljX2tleRgD", + "IAEoDEID4EEBEk0KB3NpZ19hbGcYBCABKA4yNy5nb29nbGUuY2xvdWQuY29u", + "ZmlkZW50aWFsY29tcHV0aW5nLnYxLlNpZ25pbmdBbGdvcml0aG1CA+BBASLx", + "CAoeVmVyaWZ5Q29uZmlkZW50aWFsU3BhY2VSZXF1ZXN0ElEKB3RkX2NjZWwY", + "AyABKAsyOS5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYx", + "LlRkeENjZWxBdHRlc3RhdGlvbkID4EEESAASVQoPdHBtX2F0dGVzdGF0aW9u", + "GAQgASgLMjUuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52", + "MS5UcG1BdHRlc3RhdGlvbkID4EEESAASSQoJY2hhbGxlbmdlGAEgASgJQjbg", + "QQL6QTAKLmNvbmZpZGVudGlhbGNvbXB1dGluZy5nb29nbGVhcGlzLmNvbS9D", + "aGFsbGVuZ2USUwoPZ2NwX2NyZWRlbnRpYWxzGAIgASgLMjUuZ29vZ2xlLmNs", + "b3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5HY3BDcmVkZW50aWFsc0ID", + "4EEBElEKD3NpZ25lZF9lbnRpdGllcxgFIAMoCzIzLmdvb2dsZS5jbG91ZC5j", + "b25maWRlbnRpYWxjb21wdXRpbmcudjEuU2lnbmVkRW50aXR5QgPgQQESXgoV", + "Z2NlX3NoaWVsZGVkX2lkZW50aXR5GAYgASgLMjouZ29vZ2xlLmNsb3VkLmNv", + "bmZpZGVudGlhbGNvbXB1dGluZy52MS5HY2VTaGllbGRlZElkZW50aXR5QgPg", + "QQESdAoHb3B0aW9ucxgHIAEoCzJeLmdvb2dsZS5jbG91ZC5jb25maWRlbnRp", + "YWxjb21wdXRpbmcudjEuVmVyaWZ5Q29uZmlkZW50aWFsU3BhY2VSZXF1ZXN0", + "LkNvbmZpZGVudGlhbFNwYWNlT3B0aW9uc0ID4EEBElkKEm52aWRpYV9hdHRl", + "c3RhdGlvbhgIIAEoCzI4Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21w", + "dXRpbmcudjEuTnZpZGlhQXR0ZXN0YXRpb25CA+BBARrtAgoYQ29uZmlkZW50", + "aWFsU3BhY2VPcHRpb25zEmkKGmF3c19wcmluY2lwYWxfdGFnc19vcHRpb25z", + "GAUgASgLMj4uZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52", + "MS5Bd3NQcmluY2lwYWxUYWdzT3B0aW9uc0ID4EEBSAASFQoIYXVkaWVuY2UY", + "ASABKAlCA+BBARJPCg10b2tlbl9wcm9maWxlGAIgASgOMjMuZ29vZ2xlLmNs", + "b3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5Ub2tlblByb2ZpbGVCA+BB", + "ARISCgVub25jZRgDIAMoCUID4EEBElEKDnNpZ25hdHVyZV90eXBlGAQgASgO", + "MjQuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNvbXB1dGluZy52MS5TaWdu", + "YXR1cmVUeXBlQgPgQQFCFwoVdG9rZW5fcHJvZmlsZV9vcHRpb25zQhEKD3Rl", + "ZV9hdHRlc3RhdGlvbiJHChNHY2VTaGllbGRlZElkZW50aXR5EhQKB2FrX2Nl", + "cnQYASABKAxCA+BBARIaCg1ha19jZXJ0X2NoYWluGAIgAygMQgPgQQEicgof", + "VmVyaWZ5Q29uZmlkZW50aWFsU3BhY2VSZXNwb25zZRIeChFhdHRlc3RhdGlv", + "bl90b2tlbhgBIAEoCUID4EEDEi8KDnBhcnRpYWxfZXJyb3JzGAIgAygLMhIu", + "Z29vZ2xlLnJwYy5TdGF0dXNCA+BBAyLZAwocVmVyaWZ5Q29uZmlkZW50aWFs", + "R2tlUmVxdWVzdBJQCg90cG1fYXR0ZXN0YXRpb24YAiABKAsyNS5nb29nbGUu", + "Y2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLlRwbUF0dGVzdGF0aW9u", + "SAASSQoJY2hhbGxlbmdlGAEgASgJQjbgQQL6QTAKLmNvbmZpZGVudGlhbGNv", + "bXB1dGluZy5nb29nbGVhcGlzLmNvbS9DaGFsbGVuZ2UScAoHb3B0aW9ucxgD", + "IAEoCzJaLmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEu", + "VmVyaWZ5Q29uZmlkZW50aWFsR2tlUmVxdWVzdC5Db25maWRlbnRpYWxHa2VP", + "cHRpb25zQgPgQQEalgEKFkNvbmZpZGVudGlhbEdrZU9wdGlvbnMSFQoIYXVk", + "aWVuY2UYASABKAlCA+BBARISCgVub25jZRgDIAMoCUID4EEBElEKDnNpZ25h", + "dHVyZV90eXBlGAQgASgOMjQuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlhbGNv", + "bXB1dGluZy52MS5TaWduYXR1cmVUeXBlQgPgQQFCEQoPdGVlX2F0dGVzdGF0", + "aW9uIj8KHVZlcmlmeUNvbmZpZGVudGlhbEdrZVJlc3BvbnNlEh4KEWF0dGVz", + "dGF0aW9uX3Rva2VuGAEgASgJQgPgQQMqfwoQU2lnbmluZ0FsZ29yaXRobRIh", + "Ch1TSUdOSU5HX0FMR09SSVRITV9VTlNQRUNJRklFRBAAEhUKEVJTQVNTQV9Q", + "U1NfU0hBMjU2EAESGgoWUlNBU1NBX1BLQ1MxVjE1X1NIQTI1NhACEhUKEUVD", + "RFNBX1AyNTZfU0hBMjU2EAMqjgEKCVRva2VuVHlwZRIaChZUT0tFTl9UWVBF", + "X1VOU1BFQ0lGSUVEEAASEwoPVE9LRU5fVFlQRV9PSURDEAESEgoOVE9LRU5f", + "VFlQRV9QS0kQAhIaChZUT0tFTl9UWVBFX0xJTUlURURfQVdTEAMSIAocVE9L", + "RU5fVFlQRV9BV1NfUFJJTkNJUEFMVEFHUxAEKmAKDVNpZ25hdHVyZVR5cGUS", + "HgoaU0lHTkFUVVJFX1RZUEVfVU5TUEVDSUZJRUQQABIXChNTSUdOQVRVUkVf", + "VFlQRV9PSURDEAESFgoSU0lHTkFUVVJFX1RZUEVfUEtJEAIqYwoMVG9rZW5Q", + "cm9maWxlEh0KGVRPS0VOX1BST0ZJTEVfVU5TUEVDSUZJRUQQABIdChlUT0tF", + "Tl9QUk9GSUxFX0RFRkFVTFRfRUFUEAESFQoRVE9LRU5fUFJPRklMRV9BV1MQ", + "AjK1CAoVQ29uZmlkZW50aWFsQ29tcHV0aW5nEtgBCg9DcmVhdGVDaGFsbGVu", + "Z2USPS5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29tcHV0aW5nLnYxLkNy", + "ZWF0ZUNoYWxsZW5nZVJlcXVlc3QaMC5nb29nbGUuY2xvdWQuY29uZmlkZW50", + "aWFsY29tcHV0aW5nLnYxLkNoYWxsZW5nZSJU2kEQcGFyZW50LGNoYWxsZW5n", + "ZYLT5JMCOyIuL3YxL3twYXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKn0v", + "Y2hhbGxlbmdlczoJY2hhbGxlbmdlEugBChFWZXJpZnlBdHRlc3RhdGlvbhI/", + "Lmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuVmVyaWZ5", + "QXR0ZXN0YXRpb25SZXF1ZXN0GkAuZ29vZ2xlLmNsb3VkLmNvbmZpZGVudGlh", + "bGNvbXB1dGluZy52MS5WZXJpZnlBdHRlc3RhdGlvblJlc3BvbnNlIlCC0+ST", + "AkoiRS92MS97Y2hhbGxlbmdlPXByb2plY3RzLyovbG9jYXRpb25zLyovY2hh", + "bGxlbmdlcy8qfTp2ZXJpZnlBdHRlc3RhdGlvbjoBKhKAAgoXVmVyaWZ5Q29u", + "ZmlkZW50aWFsU3BhY2USRS5nb29nbGUuY2xvdWQuY29uZmlkZW50aWFsY29t", + "cHV0aW5nLnYxLlZlcmlmeUNvbmZpZGVudGlhbFNwYWNlUmVxdWVzdBpGLmdv", + "b2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuVmVyaWZ5Q29u", + "ZmlkZW50aWFsU3BhY2VSZXNwb25zZSJWgtPkkwJQIksvdjEve2NoYWxsZW5n", + "ZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL2NoYWxsZW5nZXMvKn06dmVyaWZ5", + "Q29uZmlkZW50aWFsU3BhY2U6ASoS+AEKFVZlcmlmeUNvbmZpZGVudGlhbEdr", + "ZRJDLmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcudjEuVmVy", + "aWZ5Q29uZmlkZW50aWFsR2tlUmVxdWVzdBpELmdvb2dsZS5jbG91ZC5jb25m", + "aWRlbnRpYWxjb21wdXRpbmcudjEuVmVyaWZ5Q29uZmlkZW50aWFsR2tlUmVz", + "cG9uc2UiVILT5JMCTiJJL3YxL3tjaGFsbGVuZ2U9cHJvamVjdHMvKi9sb2Nh", + "dGlvbnMvKi9jaGFsbGVuZ2VzLyp9OnZlcmlmeUNvbmZpZGVudGlhbEdrZToB", + "KhpYykEkY29uZmlkZW50aWFsY29tcHV0aW5nLmdvb2dsZWFwaXMuY29t0kEu", + "aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jbG91ZC1wbGF0Zm9y", + "bUKGAwopY29tLmdvb2dsZS5jbG91ZC5jb25maWRlbnRpYWxjb21wdXRpbmcu", + "djFCDFNlcnZpY2VQcm90b1ABWl9jbG91ZC5nb29nbGUuY29tL2dvL2NvbmZp", + "ZGVudGlhbGNvbXB1dGluZy9hcGl2MS9jb25maWRlbnRpYWxjb21wdXRpbmdw", + "Yjtjb25maWRlbnRpYWxjb21wdXRpbmdwYqoCJUdvb2dsZS5DbG91ZC5Db25m", + "aWRlbnRpYWxDb21wdXRpbmcuVjHKAiVHb29nbGVcQ2xvdWRcQ29uZmlkZW50", + "aWFsQ29tcHV0aW5nXFYx6gIoR29vZ2xlOjpDbG91ZDo6Q29uZmlkZW50aWFs", + "Q29tcHV0aW5nOjpWMepBbAofY29tcHV0ZS5nb29nbGVhcGlzLmNvbS9JbnN0", + "YW5jZRI0cHJvamVjdHMve3Byb2plY3R9L3pvbmVzL3t6b25lfS9pbnN0YW5j", + "ZXMve2luc3RhbmNlfSoJaW5zdGFuY2VzMghpbnN0YW5jZWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Cloud.ConfidentialComputing.V1.SigningAlgorithm), typeof(global::Google.Cloud.ConfidentialComputing.V1.TokenType), typeof(global::Google.Cloud.ConfidentialComputing.V1.SignatureType), typeof(global::Google.Cloud.ConfidentialComputing.V1.TokenProfile), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.Challenge), global::Google.Cloud.ConfidentialComputing.V1.Challenge.Parser, new[]{ "Name", "CreateTime", "ExpireTime", "Used", "TpmNonce" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.CreateChallengeRequest), global::Google.Cloud.ConfidentialComputing.V1.CreateChallengeRequest.Parser, new[]{ "Parent", "Challenge" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.VerifyAttestationRequest), global::Google.Cloud.ConfidentialComputing.V1.VerifyAttestationRequest.Parser, new[]{ "TdCcel", "SevSnpAttestation", "NvidiaAttestation", "Challenge", "GcpCredentials", "TpmAttestation", "ConfidentialSpaceInfo", "TokenOptions", "Attester" }, new[]{ "TeeAttestation", "DeviceAttestation" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.VerifyAttestationRequest), global::Google.Cloud.ConfidentialComputing.V1.VerifyAttestationRequest.Parser, new[]{ "TdCcel", "SevSnpAttestation", "NvidiaAttestation", "Challenge", "GcpCredentials", "TpmAttestation", "ConfidentialSpaceInfo", "TokenOptions", "Attester", "Instance" }, new[]{ "TeeAttestation", "DeviceAttestation" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation), global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Parser, new[]{ "Spt", "Ppcie", "Mpt" }, new[]{ "CcFeature" }, new[]{ typeof(global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Types.GpuArchitectureType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Types.GpuInfo), global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Types.GpuInfo.Parser, new[]{ "Uuid", "DriverVersion", "VbiosVersion", "GpuArchitectureType", "AttestationCertificateChain", "AttestationReport" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Types.SwitchInfo), global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Types.SwitchInfo.Parser, new[]{ "Uuid", "AttestationCertificateChain", "AttestationReport" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Types.SinglePassthroughAttestation), global::Google.Cloud.ConfidentialComputing.V1.NvidiaAttestation.Types.SinglePassthroughAttestation.Parser, new[]{ "GpuQuote" }, null, null, null, null), @@ -1015,6 +1018,7 @@ public VerifyAttestationRequest(VerifyAttestationRequest other) : this() { confidentialSpaceInfo_ = other.confidentialSpaceInfo_ != null ? other.confidentialSpaceInfo_.Clone() : null; tokenOptions_ = other.tokenOptions_ != null ? other.tokenOptions_.Clone() : null; attester_ = other.attester_; + instance_ = other.instance_; switch (other.TeeAttestationCase) { case TeeAttestationOneofCase.TdCcel: TdCcel = other.TdCcel.Clone(); @@ -1180,6 +1184,23 @@ public string Attester { } } + /// Field number for the "instance" field. + public const int InstanceFieldNumber = 10; + private string instance_ = ""; + /// + /// Optional. Optional resource link of the Compute Engine instance. + /// Format: + /// `projects/{project_number}/zones/{zone}/instances/{instance_id}` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Instance { + get { return instance_; } + set { + instance_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + private object teeAttestation_; /// Enum of possible cases for the "tee_attestation" oneof. public enum TeeAttestationOneofCase { @@ -1245,6 +1266,7 @@ public bool Equals(VerifyAttestationRequest other) { if (!object.Equals(ConfidentialSpaceInfo, other.ConfidentialSpaceInfo)) return false; if (!object.Equals(TokenOptions, other.TokenOptions)) return false; if (Attester != other.Attester) return false; + if (Instance != other.Instance) return false; if (TeeAttestationCase != other.TeeAttestationCase) return false; if (DeviceAttestationCase != other.DeviceAttestationCase) return false; return Equals(_unknownFields, other._unknownFields); @@ -1263,6 +1285,7 @@ public override int GetHashCode() { if (confidentialSpaceInfo_ != null) hash ^= ConfidentialSpaceInfo.GetHashCode(); if (tokenOptions_ != null) hash ^= TokenOptions.GetHashCode(); if (Attester.Length != 0) hash ^= Attester.GetHashCode(); + if (Instance.Length != 0) hash ^= Instance.GetHashCode(); hash ^= (int) teeAttestationCase_; hash ^= (int) deviceAttestationCase_; if (_unknownFields != null) { @@ -1319,6 +1342,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(74); output.WriteMessage(NvidiaAttestation); } + if (Instance.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Instance); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1365,6 +1392,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(74); output.WriteMessage(NvidiaAttestation); } + if (Instance.Length != 0) { + output.WriteRawTag(82); + output.WriteString(Instance); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1402,6 +1433,9 @@ public int CalculateSize() { if (Attester.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Attester); } + if (Instance.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Instance); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1444,6 +1478,9 @@ public void MergeFrom(VerifyAttestationRequest other) { if (other.Attester.Length != 0) { Attester = other.Attester; } + if (other.Instance.Length != 0) { + Instance = other.Instance; + } switch (other.TeeAttestationCase) { case TeeAttestationOneofCase.TdCcel: if (TdCcel == null) { @@ -1550,6 +1587,10 @@ public void MergeFrom(pb::CodedInputStream input) { NvidiaAttestation = subBuilder; break; } + case 82: { + Instance = input.ReadString(); + break; + } } } #endif @@ -1632,6 +1673,10 @@ public void MergeFrom(pb::CodedInputStream input) { NvidiaAttestation = subBuilder; break; } + case 82: { + Instance = input.ReadString(); + break; + } } } } diff --git a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/ServiceResourceNames.g.cs b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/ServiceResourceNames.g.cs index 8436bca49a0f..6aec4a67c053 100644 --- a/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/ServiceResourceNames.g.cs +++ b/apis/Google.Cloud.ConfidentialComputing.V1/Google.Cloud.ConfidentialComputing.V1/ServiceResourceNames.g.cs @@ -264,6 +264,248 @@ public override string ToString() public static bool operator !=(ChallengeName a, ChallengeName b) => !(a == b); } + /// Resource name for the Instance resource. + public sealed partial class InstanceName : gax::IResourceName, sys::IEquatable + { + /// The possible contents of . + public enum ResourceNameType + { + /// An unparsed resource name. + Unparsed = 0, + + /// + /// A resource name with pattern projects/{project}/zones/{zone}/instances/{instance}. + /// + ProjectZoneInstance = 1, + } + + private static gax::PathTemplate s_projectZoneInstance = new gax::PathTemplate("projects/{project}/zones/{zone}/instances/{instance}"); + + /// Creates a containing an unparsed resource name. + /// The unparsed resource name. Must not be null. + /// + /// A new instance of containing the provided + /// . + /// + public static InstanceName FromUnparsed(gax::UnparsedResourceName unparsedResourceName) => + new InstanceName(ResourceNameType.Unparsed, gax::GaxPreconditions.CheckNotNull(unparsedResourceName, nameof(unparsedResourceName))); + + /// + /// Creates a with the pattern + /// projects/{project}/zones/{zone}/instances/{instance}. + /// + /// The Project ID. Must not be null or empty. + /// The Zone ID. Must not be null or empty. + /// The Instance ID. Must not be null or empty. + /// A new instance of constructed from the provided ids. + public static InstanceName FromProjectZoneInstance(string projectId, string zoneId, string instanceId) => + new InstanceName(ResourceNameType.ProjectZoneInstance, projectId: gax::GaxPreconditions.CheckNotNullOrEmpty(projectId, nameof(projectId)), zoneId: gax::GaxPreconditions.CheckNotNullOrEmpty(zoneId, nameof(zoneId)), instanceId: gax::GaxPreconditions.CheckNotNullOrEmpty(instanceId, nameof(instanceId))); + + /// + /// Formats the IDs into the string representation of this with pattern + /// projects/{project}/zones/{zone}/instances/{instance}. + /// + /// The Project ID. Must not be null or empty. + /// The Zone ID. Must not be null or empty. + /// The Instance ID. Must not be null or empty. + /// + /// The string representation of this with pattern + /// projects/{project}/zones/{zone}/instances/{instance}. + /// + public static string Format(string projectId, string zoneId, string instanceId) => + FormatProjectZoneInstance(projectId, zoneId, instanceId); + + /// + /// Formats the IDs into the string representation of this with pattern + /// projects/{project}/zones/{zone}/instances/{instance}. + /// + /// The Project ID. Must not be null or empty. + /// The Zone ID. Must not be null or empty. + /// The Instance ID. Must not be null or empty. + /// + /// The string representation of this with pattern + /// projects/{project}/zones/{zone}/instances/{instance}. + /// + public static string FormatProjectZoneInstance(string projectId, string zoneId, string instanceId) => + s_projectZoneInstance.Expand(gax::GaxPreconditions.CheckNotNullOrEmpty(projectId, nameof(projectId)), gax::GaxPreconditions.CheckNotNullOrEmpty(zoneId, nameof(zoneId)), gax::GaxPreconditions.CheckNotNullOrEmpty(instanceId, nameof(instanceId))); + + /// Parses the given resource name string into a new instance. + /// + /// To parse successfully, the resource name must be formatted as one of the following: + /// + /// projects/{project}/zones/{zone}/instances/{instance} + /// + /// + /// The resource name in string form. Must not be null. + /// The parsed if successful. + public static InstanceName Parse(string instanceName) => Parse(instanceName, false); + + /// + /// Parses the given resource name string into a new instance; optionally allowing an + /// unparseable resource name. + /// + /// + /// To parse successfully, the resource name must be formatted as one of the following: + /// + /// projects/{project}/zones/{zone}/instances/{instance} + /// + /// Or may be in any format if is true. + /// + /// The resource name in string form. Must not be null. + /// + /// If true will successfully store an unparseable resource name into the + /// property; otherwise will throw an if an unparseable resource name is + /// specified. + /// + /// The parsed if successful. + public static InstanceName Parse(string instanceName, bool allowUnparsed) => + TryParse(instanceName, allowUnparsed, out InstanceName result) ? result : throw new sys::ArgumentException("The given resource-name matches no pattern."); + + /// + /// Tries to parse the given resource name string into a new instance. + /// + /// + /// To parse successfully, the resource name must be formatted as one of the following: + /// + /// projects/{project}/zones/{zone}/instances/{instance} + /// + /// + /// The resource name in string form. Must not be null. + /// + /// When this method returns, the parsed , or null if parsing failed. + /// + /// true if the name was parsed successfully; false otherwise. + public static bool TryParse(string instanceName, out InstanceName result) => TryParse(instanceName, false, out result); + + /// + /// Tries to parse the given resource name string into a new instance; optionally + /// allowing an unparseable resource name. + /// + /// + /// To parse successfully, the resource name must be formatted as one of the following: + /// + /// projects/{project}/zones/{zone}/instances/{instance} + /// + /// Or may be in any format if is true. + /// + /// The resource name in string form. Must not be null. + /// + /// If true will successfully store an unparseable resource name into the + /// property; otherwise will throw an if an unparseable resource name is + /// specified. + /// + /// + /// When this method returns, the parsed , or null if parsing failed. + /// + /// true if the name was parsed successfully; false otherwise. + public static bool TryParse(string instanceName, bool allowUnparsed, out InstanceName result) + { + gax::GaxPreconditions.CheckNotNull(instanceName, nameof(instanceName)); + gax::TemplatedResourceName resourceName; + if (s_projectZoneInstance.TryParseName(instanceName, out resourceName)) + { + result = FromProjectZoneInstance(resourceName[0], resourceName[1], resourceName[2]); + return true; + } + if (allowUnparsed) + { + if (gax::UnparsedResourceName.TryParse(instanceName, out gax::UnparsedResourceName unparsedResourceName)) + { + result = FromUnparsed(unparsedResourceName); + return true; + } + } + result = null; + return false; + } + + private InstanceName(ResourceNameType type, gax::UnparsedResourceName unparsedResourceName = null, string instanceId = null, string projectId = null, string zoneId = null) + { + Type = type; + UnparsedResource = unparsedResourceName; + InstanceId = instanceId; + ProjectId = projectId; + ZoneId = zoneId; + } + + /// + /// Constructs a new instance of a class from the component parts of pattern + /// projects/{project}/zones/{zone}/instances/{instance} + /// + /// The Project ID. Must not be null or empty. + /// The Zone ID. Must not be null or empty. + /// The Instance ID. Must not be null or empty. + public InstanceName(string projectId, string zoneId, string instanceId) : this(ResourceNameType.ProjectZoneInstance, projectId: gax::GaxPreconditions.CheckNotNullOrEmpty(projectId, nameof(projectId)), zoneId: gax::GaxPreconditions.CheckNotNullOrEmpty(zoneId, nameof(zoneId)), instanceId: gax::GaxPreconditions.CheckNotNullOrEmpty(instanceId, nameof(instanceId))) + { + } + + /// The of the contained resource name. + public ResourceNameType Type { get; } + + /// + /// The contained . Only non-null if this instance contains an + /// unparsed resource name. + /// + public gax::UnparsedResourceName UnparsedResource { get; } + + /// + /// The Instance ID. Will not be null, unless this instance contains an unparsed resource name. + /// + public string InstanceId { get; } + + /// + /// The Project ID. Will not be null, unless this instance contains an unparsed resource name. + /// + public string ProjectId { get; } + + /// + /// The Zone ID. Will not be null, unless this instance contains an unparsed resource name. + /// + public string ZoneId { get; } + + /// Whether this instance contains a resource name with a known pattern. + public bool IsKnownPattern => Type != ResourceNameType.Unparsed; + + /// The string representation of the resource name. + /// The string representation of the resource name. + public override string ToString() + { + switch (Type) + { + case ResourceNameType.Unparsed: return UnparsedResource.ToString(); + case ResourceNameType.ProjectZoneInstance: return s_projectZoneInstance.Expand(ProjectId, ZoneId, InstanceId); + default: throw new sys::InvalidOperationException("Unrecognized resource-type."); + } + } + + /// Returns a hash code for this resource name. + public override int GetHashCode() => ToString().GetHashCode(); + + /// + public override bool Equals(object obj) => Equals(obj as InstanceName); + + /// + public bool Equals(InstanceName other) => ToString() == other?.ToString(); + + /// Determines whether two specified resource names have the same value. + /// The first resource name to compare, or null. + /// The second resource name to compare, or null. + /// + /// true if the value of is the same as the value of ; otherwise, + /// false. + /// + public static bool operator ==(InstanceName a, InstanceName b) => ReferenceEquals(a, b) || (a?.Equals(b) ?? false); + + /// Determines whether two specified resource names have different values. + /// The first resource name to compare, or null. + /// The second resource name to compare, or null. + /// + /// true if the value of is different from the value of ; otherwise, + /// false. + /// + public static bool operator !=(InstanceName a, InstanceName b) => !(a == b); + } + public partial class Challenge { /// @@ -298,6 +540,15 @@ public ChallengeName ChallengeAsChallengeName get => string.IsNullOrEmpty(Challenge) ? null : ChallengeName.Parse(Challenge, allowUnparsed: true); set => Challenge = value?.ToString() ?? ""; } + + /// + /// -typed view over the resource name property. + /// + public InstanceName InstanceAsInstanceName + { + get => string.IsNullOrEmpty(Instance) ? null : InstanceName.Parse(Instance, allowUnparsed: true); + set => Instance = value?.ToString() ?? ""; + } } public partial class VerifyConfidentialSpaceRequest diff --git a/generator-input/pipeline-state.json b/generator-input/pipeline-state.json index 721671dddf05..8760857fd313 100644 --- a/generator-input/pipeline-state.json +++ b/generator-input/pipeline-state.json @@ -1092,7 +1092,7 @@ "generationAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseTimestamp": "2026-02-09T14:09:35.006899259Z", - "lastGeneratedCommit": "4e434c1c1fc79b51fd68d576b337fa0ed387f54c", + "lastGeneratedCommit": "00bb3db8a8cc88f0755e872856462b902d6dd8c4", "lastReleasedCommit": "4e434c1c1fc79b51fd68d576b337fa0ed387f54c", "apiPaths": [ "google/cloud/confidentialcomputing/v1" From c35a9b171f6e55bcf7506b76794488952bdb3bb4 Mon Sep 17 00:00:00 2001 From: Google Cloud SDK Librarian Date: Wed, 10 Jun 2026 07:14:36 +0000 Subject: [PATCH 5/6] regen: Regenerate Google.Cloud.Firestore at API commit 465f309 feat: expose the 'auto_commit_transaction' option for the ExecutePipeline API feat: expose the 'concurrency_mode' option for the Cloud Firestore API chore: Firestore.executePipeline to not retry on `DEADLINE_EXCEEDED` docs: A comment for message `TransactionOptions` is changed to better detail the new 'concurrency_mode' option. docs: A comment for field `parent` in message `.google.firestore.v1.ListCollectionIdsRequest` is changed to describe how to list top-level collections. docs: A comment for field `order_by` in message `.google.firestore.v1.StructuredQuery` is updated to describe default behavior for ENTERPRISE edition databases PiperOrigin-RevId: 929318392 Source-Link: https://github.com/googleapis/googleapis/commit/465f309dd31630c8de4ed10891e494d612fa1864 --- ...t.ExecutePipelineRequestObjectSnippet.g.cs | 1 + .../snippet_metadata_google.firestore.v1.json | 4 +- .../FirestoreClientSnippets.g.cs | 1 + .../Google.Cloud.Firestore.V1/Common.g.cs | 108 ++++- .../Google.Cloud.Firestore.V1/Firestore.g.cs | 378 ++++++++++-------- .../FirestoreClient.g.cs | 6 + .../Google.Cloud.Firestore.V1/Query.g.cs | 16 +- generator-input/pipeline-state.json | 2 +- 8 files changed, 323 insertions(+), 193 deletions(-) diff --git a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/FirestoreClient.ExecutePipelineRequestObjectSnippet.g.cs b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/FirestoreClient.ExecutePipelineRequestObjectSnippet.g.cs index a2f55c414806..9e623d724048 100644 --- a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/FirestoreClient.ExecutePipelineRequestObjectSnippet.g.cs +++ b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/FirestoreClient.ExecutePipelineRequestObjectSnippet.g.cs @@ -42,6 +42,7 @@ public async Task ExecutePipelineRequestObject() Database = "", StructuredPipeline = new StructuredPipeline(), Transaction = ByteString.Empty, + AutoCommitTransaction = false, }; // Make the request, returning a streaming response using FirestoreClient.ExecutePipelineStream response = firestoreClient.ExecutePipeline(request); diff --git a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/snippet_metadata_google.firestore.v1.json b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/snippet_metadata_google.firestore.v1.json index 1be4d716c3f6..4a092fb1540a 100644 --- a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/snippet_metadata_google.firestore.v1.json +++ b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.GeneratedSnippets/snippet_metadata_google.firestore.v1.json @@ -1318,12 +1318,12 @@ "segments": [ { "start": 20, - "end": 59, + "end": 60, "type": "FULL" }, { "start": 37, - "end": 57, + "end": 58, "type": "SHORT" } ] diff --git a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.Snippets/FirestoreClientSnippets.g.cs b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.Snippets/FirestoreClientSnippets.g.cs index 0f62035bb43f..5f4654a33c13 100644 --- a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.Snippets/FirestoreClientSnippets.g.cs +++ b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1.Snippets/FirestoreClientSnippets.g.cs @@ -563,6 +563,7 @@ public async Task ExecutePipelineRequestObject() Database = "", StructuredPipeline = new StructuredPipeline(), Transaction = ByteString.Empty, + AutoCommitTransaction = false, }; // Make the request, returning a streaming response using FirestoreClient.ExecutePipelineStream response = firestoreClient.ExecutePipeline(request); diff --git a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Common.g.cs b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Common.g.cs index 0543bed9d044..f910fd3a91ef 100644 --- a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Common.g.cs +++ b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Common.g.cs @@ -25,28 +25,32 @@ static CommonReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "CiBnb29nbGUvZmlyZXN0b3JlL3YxL2NvbW1vbi5wcm90bxITZ29vZ2xlLmZp", - "cmVzdG9yZS52MRofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byIj", - "CgxEb2N1bWVudE1hc2sSEwoLZmllbGRfcGF0aHMYASADKAkiZQoMUHJlY29u", - "ZGl0aW9uEhAKBmV4aXN0cxgBIAEoCEgAEjEKC3VwZGF0ZV90aW1lGAIgASgL", - "MhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAQhAKDmNvbmRpdGlvbl90", - "eXBlIqkCChJUcmFuc2FjdGlvbk9wdGlvbnMSRQoJcmVhZF9vbmx5GAIgASgL", - "MjAuZ29vZ2xlLmZpcmVzdG9yZS52MS5UcmFuc2FjdGlvbk9wdGlvbnMuUmVh", - "ZE9ubHlIABJHCgpyZWFkX3dyaXRlGAMgASgLMjEuZ29vZ2xlLmZpcmVzdG9y", - "ZS52MS5UcmFuc2FjdGlvbk9wdGlvbnMuUmVhZFdyaXRlSAAaJgoJUmVhZFdy", - "aXRlEhkKEXJldHJ5X3RyYW5zYWN0aW9uGAEgASgMGlMKCFJlYWRPbmx5Ei8K", - "CXJlYWRfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBI", - "AEIWChRjb25zaXN0ZW5jeV9zZWxlY3RvckIGCgRtb2RlQsMBChdjb20uZ29v", - "Z2xlLmZpcmVzdG9yZS52MUILQ29tbW9uUHJvdG9QAVo7Y2xvdWQuZ29vZ2xl", - "LmNvbS9nby9maXJlc3RvcmUvYXBpdjEvZmlyZXN0b3JlcGI7ZmlyZXN0b3Jl", - "cGKiAgRHQ0ZTqgIZR29vZ2xlLkNsb3VkLkZpcmVzdG9yZS5WMcoCGUdvb2ds", - "ZVxDbG91ZFxGaXJlc3RvcmVcVjHqAhxHb29nbGU6OkNsb3VkOjpGaXJlc3Rv", - "cmU6OlYxYgZwcm90bzM=")); + "cmVzdG9yZS52MRofZ29vZ2xlL2FwaS9maWVsZF9iZWhhdmlvci5wcm90bxof", + "Z29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byIjCgxEb2N1bWVudE1h", + "c2sSEwoLZmllbGRfcGF0aHMYASADKAkiZQoMUHJlY29uZGl0aW9uEhAKBmV4", + "aXN0cxgBIAEoCEgAEjEKC3VwZGF0ZV90aW1lGAIgASgLMhouZ29vZ2xlLnBy", + "b3RvYnVmLlRpbWVzdGFtcEgAQhAKDmNvbmRpdGlvbl90eXBlItcDChJUcmFu", + "c2FjdGlvbk9wdGlvbnMSRQoJcmVhZF9vbmx5GAIgASgLMjAuZ29vZ2xlLmZp", + "cmVzdG9yZS52MS5UcmFuc2FjdGlvbk9wdGlvbnMuUmVhZE9ubHlIABJHCgpy", + "ZWFkX3dyaXRlGAMgASgLMjEuZ29vZ2xlLmZpcmVzdG9yZS52MS5UcmFuc2Fj", + "dGlvbk9wdGlvbnMuUmVhZFdyaXRlSAAafgoJUmVhZFdyaXRlEhkKEXJldHJ5", + "X3RyYW5zYWN0aW9uGAEgASgMElYKEGNvbmN1cnJlbmN5X21vZGUYAiABKA4y", + "Ny5nb29nbGUuZmlyZXN0b3JlLnYxLlRyYW5zYWN0aW9uT3B0aW9ucy5Db25j", + "dXJyZW5jeU1vZGVCA+BBARpTCghSZWFkT25seRIvCglyZWFkX3RpbWUYAiAB", + "KAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSABCFgoUY29uc2lzdGVu", + "Y3lfc2VsZWN0b3IiVAoPQ29uY3VycmVuY3lNb2RlEiAKHENPTkNVUlJFTkNZ", + "X01PREVfVU5TUEVDSUZJRUQQABIOCgpPUFRJTUlTVElDEAESDwoLUEVTU0lN", + "SVNUSUMQAkIGCgRtb2RlQsMBChdjb20uZ29vZ2xlLmZpcmVzdG9yZS52MUIL", + "Q29tbW9uUHJvdG9QAVo7Y2xvdWQuZ29vZ2xlLmNvbS9nby9maXJlc3RvcmUv", + "YXBpdjEvZmlyZXN0b3JlcGI7ZmlyZXN0b3JlcGKiAgRHQ0ZTqgIZR29vZ2xl", + "LkNsb3VkLkZpcmVzdG9yZS5WMcoCGUdvb2dsZVxDbG91ZFxGaXJlc3RvcmVc", + "VjHqAhxHb29nbGU6OkNsb3VkOjpGaXJlc3RvcmU6OlYxYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.DocumentMask), global::Google.Cloud.Firestore.V1.DocumentMask.Parser, new[]{ "FieldPaths" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.Precondition), global::Google.Cloud.Firestore.V1.Precondition.Parser, new[]{ "Exists", "UpdateTime" }, new[]{ "ConditionType" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.TransactionOptions), global::Google.Cloud.Firestore.V1.TransactionOptions.Parser, new[]{ "ReadOnly", "ReadWrite" }, new[]{ "Mode" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ReadWrite), global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ReadWrite.Parser, new[]{ "RetryTransaction" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.TransactionOptions), global::Google.Cloud.Firestore.V1.TransactionOptions.Parser, new[]{ "ReadOnly", "ReadWrite" }, new[]{ "Mode" }, new[]{ typeof(global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ReadWrite), global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ReadWrite.Parser, new[]{ "RetryTransaction", "ConcurrencyMode" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ReadOnly), global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ReadOnly.Parser, new[]{ "ReadTime" }, new[]{ "ConsistencySelector" }, null, null, null)}) })); } @@ -866,11 +870,26 @@ public void MergeFrom(pb::CodedInputStream input) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static partial class Types { + /// + /// The type of concurrency control mode for transactions. + /// + public enum ConcurrencyMode { + /// + /// Start the transaction with the database-level default concurrency mode. + /// + [pbr::OriginalName("CONCURRENCY_MODE_UNSPECIFIED")] Unspecified = 0, + /// + /// Use optimistic concurrency control for the new transaction. + /// + [pbr::OriginalName("OPTIMISTIC")] Optimistic = 1, + /// + /// Use pessimistic concurrency control for the new transaction. + /// + [pbr::OriginalName("PESSIMISTIC")] Pessimistic = 2, + } + /// /// Options for a transaction that can be used to read and write documents. - /// - /// Firestore does not allow 3rd party auth requests to create read-write. - /// transactions. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class ReadWrite : pb::IMessage @@ -908,6 +927,7 @@ public ReadWrite() { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public ReadWrite(ReadWrite other) : this() { retryTransaction_ = other.retryTransaction_; + concurrencyMode_ = other.concurrencyMode_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -932,6 +952,28 @@ public ReadWrite Clone() { } } + /// Field number for the "concurrency_mode" field. + public const int ConcurrencyModeFieldNumber = 2; + private global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode concurrencyMode_ = global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode.Unspecified; + /// + /// Optional. The concurrency control mode to use for this transaction. + /// + /// A database is able to use different concurrency modes for different + /// transactions simultaneously. + /// + /// 3rd party auth requests are only allowed to create optimistic + /// read-write transactions and must specify that here even if the + /// database-level setting is already configured to optimistic. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode ConcurrencyMode { + get { return concurrencyMode_; } + set { + concurrencyMode_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -948,6 +990,7 @@ public bool Equals(ReadWrite other) { return true; } if (RetryTransaction != other.RetryTransaction) return false; + if (ConcurrencyMode != other.ConcurrencyMode) return false; return Equals(_unknownFields, other._unknownFields); } @@ -956,6 +999,7 @@ public bool Equals(ReadWrite other) { public override int GetHashCode() { int hash = 1; if (RetryTransaction.Length != 0) hash ^= RetryTransaction.GetHashCode(); + if (ConcurrencyMode != global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode.Unspecified) hash ^= ConcurrencyMode.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -978,6 +1022,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteBytes(RetryTransaction); } + if (ConcurrencyMode != global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode.Unspecified) { + output.WriteRawTag(16); + output.WriteEnum((int) ConcurrencyMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -992,6 +1040,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteBytes(RetryTransaction); } + if (ConcurrencyMode != global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode.Unspecified) { + output.WriteRawTag(16); + output.WriteEnum((int) ConcurrencyMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1005,6 +1057,9 @@ public int CalculateSize() { if (RetryTransaction.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(RetryTransaction); } + if (ConcurrencyMode != global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode.Unspecified) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ConcurrencyMode); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1020,6 +1075,9 @@ public void MergeFrom(ReadWrite other) { if (other.RetryTransaction.Length != 0) { RetryTransaction = other.RetryTransaction; } + if (other.ConcurrencyMode != global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode.Unspecified) { + ConcurrencyMode = other.ConcurrencyMode; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1043,6 +1101,10 @@ public void MergeFrom(pb::CodedInputStream input) { RetryTransaction = input.ReadBytes(); break; } + case 16: { + ConcurrencyMode = (global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode) input.ReadEnum(); + break; + } } } #endif @@ -1066,6 +1128,10 @@ public void MergeFrom(pb::CodedInputStream input) { RetryTransaction = input.ReadBytes(); break; } + case 16: { + ConcurrencyMode = (global::Google.Cloud.Firestore.V1.TransactionOptions.Types.ConcurrencyMode) input.ReadEnum(); + break; + } } } } diff --git a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Firestore.g.cs b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Firestore.g.cs index 87966d835a7e..ff815fb057bb 100644 --- a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Firestore.g.cs +++ b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Firestore.g.cs @@ -96,176 +96,177 @@ static FirestoreReflection() { "CXJlYWRfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAS", "FwoPc2tpcHBlZF9yZXN1bHRzGAQgASgFEg4KBGRvbmUYBiABKAhIABI8Cg9l", "eHBsYWluX21ldHJpY3MYCyABKAsyIy5nb29nbGUuZmlyZXN0b3JlLnYxLkV4", - "cGxhaW5NZXRyaWNzQhcKFWNvbnRpbnVhdGlvbl9zZWxlY3RvciKsAgoWRXhl", + "cGxhaW5NZXRyaWNzQhcKFWNvbnRpbnVhdGlvbl9zZWxlY3RvciLSAgoWRXhl", "Y3V0ZVBpcGVsaW5lUmVxdWVzdBIVCghkYXRhYmFzZRgBIAEoCUID4EECEkYK", "E3N0cnVjdHVyZWRfcGlwZWxpbmUYAiABKAsyJy5nb29nbGUuZmlyZXN0b3Jl", "LnYxLlN0cnVjdHVyZWRQaXBlbGluZUgAEhUKC3RyYW5zYWN0aW9uGAUgASgM", "SAESQgoPbmV3X3RyYW5zYWN0aW9uGAYgASgLMicuZ29vZ2xlLmZpcmVzdG9y", "ZS52MS5UcmFuc2FjdGlvbk9wdGlvbnNIARIvCglyZWFkX3RpbWUYByABKAsy", - "Gi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAFCDwoNcGlwZWxpbmVfdHlw", - "ZUIWChRjb25zaXN0ZW5jeV9zZWxlY3RvciLMAQoXRXhlY3V0ZVBpcGVsaW5l", - "UmVzcG9uc2USEwoLdHJhbnNhY3Rpb24YASABKAwSLgoHcmVzdWx0cxgCIAMo", - "CzIdLmdvb2dsZS5maXJlc3RvcmUudjEuRG9jdW1lbnQSMgoOZXhlY3V0aW9u", - "X3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKDWV4", - "cGxhaW5fc3RhdHMYBCABKAsyIS5nb29nbGUuZmlyZXN0b3JlLnYxLkV4cGxh", - "aW5TdGF0cyL/AgoaUnVuQWdncmVnYXRpb25RdWVyeVJlcXVlc3QSEwoGcGFy", - "ZW50GAEgASgJQgPgQQISVwocc3RydWN0dXJlZF9hZ2dyZWdhdGlvbl9xdWVy", - "eRgCIAEoCzIvLmdvb2dsZS5maXJlc3RvcmUudjEuU3RydWN0dXJlZEFnZ3Jl", - "Z2F0aW9uUXVlcnlIABIVCgt0cmFuc2FjdGlvbhgEIAEoDEgBEkIKD25ld190", - "cmFuc2FjdGlvbhgFIAEoCzInLmdvb2dsZS5maXJlc3RvcmUudjEuVHJhbnNh", - "Y3Rpb25PcHRpb25zSAESLwoJcmVhZF90aW1lGAYgASgLMhouZ29vZ2xlLnBy", - "b3RvYnVmLlRpbWVzdGFtcEgBEkEKD2V4cGxhaW5fb3B0aW9ucxgIIAEoCzIj", - "Lmdvb2dsZS5maXJlc3RvcmUudjEuRXhwbGFpbk9wdGlvbnNCA+BBAUIMCgpx", - "dWVyeV90eXBlQhYKFGNvbnNpc3RlbmN5X3NlbGVjdG9yItcBChtSdW5BZ2dy", - "ZWdhdGlvblF1ZXJ5UmVzcG9uc2USNgoGcmVzdWx0GAEgASgLMiYuZ29vZ2xl", - "LmZpcmVzdG9yZS52MS5BZ2dyZWdhdGlvblJlc3VsdBITCgt0cmFuc2FjdGlv", - "bhgCIAEoDBItCglyZWFkX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYu", - "VGltZXN0YW1wEjwKD2V4cGxhaW5fbWV0cmljcxgKIAEoCzIjLmdvb2dsZS5m", - "aXJlc3RvcmUudjEuRXhwbGFpbk1ldHJpY3MihQIKFVBhcnRpdGlvblF1ZXJ5", - "UmVxdWVzdBITCgZwYXJlbnQYASABKAlCA+BBAhJAChBzdHJ1Y3R1cmVkX3F1", - "ZXJ5GAIgASgLMiQuZ29vZ2xlLmZpcmVzdG9yZS52MS5TdHJ1Y3R1cmVkUXVl", - "cnlIABIXCg9wYXJ0aXRpb25fY291bnQYAyABKAMSEgoKcGFnZV90b2tlbhgE", - "IAEoCRIRCglwYWdlX3NpemUYBSABKAUSLwoJcmVhZF90aW1lGAYgASgLMhou", - "Z29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBQgwKCnF1ZXJ5X3R5cGVCFgoU", - "Y29uc2lzdGVuY3lfc2VsZWN0b3IiYgoWUGFydGl0aW9uUXVlcnlSZXNwb25z", - "ZRIvCgpwYXJ0aXRpb25zGAEgAygLMhsuZ29vZ2xlLmZpcmVzdG9yZS52MS5D", - "dXJzb3ISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIugBCgxXcml0ZVJlcXVl", - "c3QSFQoIZGF0YWJhc2UYASABKAlCA+BBAhIRCglzdHJlYW1faWQYAiABKAkS", - "KgoGd3JpdGVzGAMgAygLMhouZ29vZ2xlLmZpcmVzdG9yZS52MS5Xcml0ZRIU", - "CgxzdHJlYW1fdG9rZW4YBCABKAwSPQoGbGFiZWxzGAUgAygLMi0uZ29vZ2xl", - "LmZpcmVzdG9yZS52MS5Xcml0ZVJlcXVlc3QuTGFiZWxzRW50cnkaLQoLTGFi", - "ZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKiAQoN", - "V3JpdGVSZXNwb25zZRIRCglzdHJlYW1faWQYASABKAkSFAoMc3RyZWFtX3Rv", - "a2VuGAIgASgMEjcKDXdyaXRlX3Jlc3VsdHMYAyADKAsyIC5nb29nbGUuZmly", - "ZXN0b3JlLnYxLldyaXRlUmVzdWx0Ei8KC2NvbW1pdF90aW1lGAQgASgLMhou", - "Z29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLyAQoNTGlzdGVuUmVxdWVzdBIV", - "CghkYXRhYmFzZRgBIAEoCUID4EECEjEKCmFkZF90YXJnZXQYAiABKAsyGy5n", - "b29nbGUuZmlyZXN0b3JlLnYxLlRhcmdldEgAEhcKDXJlbW92ZV90YXJnZXQY", - "AyABKAVIABI+CgZsYWJlbHMYBCADKAsyLi5nb29nbGUuZmlyZXN0b3JlLnYx", - "Lkxpc3RlblJlcXVlc3QuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoD", - "a2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIPCg10YXJnZXRfY2hhbmdl", - "ItUCCg5MaXN0ZW5SZXNwb25zZRI6Cg10YXJnZXRfY2hhbmdlGAIgASgLMiEu", - "Z29vZ2xlLmZpcmVzdG9yZS52MS5UYXJnZXRDaGFuZ2VIABI+Cg9kb2N1bWVu", - "dF9jaGFuZ2UYAyABKAsyIy5nb29nbGUuZmlyZXN0b3JlLnYxLkRvY3VtZW50", - "Q2hhbmdlSAASPgoPZG9jdW1lbnRfZGVsZXRlGAQgASgLMiMuZ29vZ2xlLmZp", - "cmVzdG9yZS52MS5Eb2N1bWVudERlbGV0ZUgAEj4KD2RvY3VtZW50X3JlbW92", - "ZRgGIAEoCzIjLmdvb2dsZS5maXJlc3RvcmUudjEuRG9jdW1lbnRSZW1vdmVI", - "ABI2CgZmaWx0ZXIYBSABKAsyJC5nb29nbGUuZmlyZXN0b3JlLnYxLkV4aXN0", - "ZW5jZUZpbHRlckgAQg8KDXJlc3BvbnNlX3R5cGUi1gMKBlRhcmdldBI4CgVx", - "dWVyeRgCIAEoCzInLmdvb2dsZS5maXJlc3RvcmUudjEuVGFyZ2V0LlF1ZXJ5", - "VGFyZ2V0SAASQAoJZG9jdW1lbnRzGAMgASgLMisuZ29vZ2xlLmZpcmVzdG9y", - "ZS52MS5UYXJnZXQuRG9jdW1lbnRzVGFyZ2V0SAASFgoMcmVzdW1lX3Rva2Vu", - "GAQgASgMSAESLwoJcmVhZF90aW1lGAsgASgLMhouZ29vZ2xlLnByb3RvYnVm", - "LlRpbWVzdGFtcEgBEhEKCXRhcmdldF9pZBgFIAEoBRIMCgRvbmNlGAYgASgI", - "EjMKDmV4cGVjdGVkX2NvdW50GAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLklu", - "dDMyVmFsdWUaJAoPRG9jdW1lbnRzVGFyZ2V0EhEKCWRvY3VtZW50cxgCIAMo", - "CRptCgtRdWVyeVRhcmdldBIOCgZwYXJlbnQYASABKAkSQAoQc3RydWN0dXJl", - "ZF9xdWVyeRgCIAEoCzIkLmdvb2dsZS5maXJlc3RvcmUudjEuU3RydWN0dXJl", - "ZFF1ZXJ5SABCDAoKcXVlcnlfdHlwZUINCgt0YXJnZXRfdHlwZUINCgtyZXN1", - "bWVfdHlwZSKqAgoMVGFyZ2V0Q2hhbmdlEk4KEnRhcmdldF9jaGFuZ2VfdHlw", - "ZRgBIAEoDjIyLmdvb2dsZS5maXJlc3RvcmUudjEuVGFyZ2V0Q2hhbmdlLlRh", - "cmdldENoYW5nZVR5cGUSEgoKdGFyZ2V0X2lkcxgCIAMoBRIhCgVjYXVzZRgD", - "IAEoCzISLmdvb2dsZS5ycGMuU3RhdHVzEhQKDHJlc3VtZV90b2tlbhgEIAEo", - "DBItCglyZWFkX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0", - "YW1wIk4KEFRhcmdldENoYW5nZVR5cGUSDQoJTk9fQ0hBTkdFEAASBwoDQURE", - "EAESCgoGUkVNT1ZFEAISCwoHQ1VSUkVOVBADEgkKBVJFU0VUEAQinwEKGExp", - "c3RDb2xsZWN0aW9uSWRzUmVxdWVzdBITCgZwYXJlbnQYASABKAlCA+BBAhIR", - "CglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCRIvCglyZWFk", - "X3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSABCFgoU", - "Y29uc2lzdGVuY3lfc2VsZWN0b3IiTAoZTGlzdENvbGxlY3Rpb25JZHNSZXNw", - "b25zZRIWCg5jb2xsZWN0aW9uX2lkcxgBIAMoCRIXCg9uZXh0X3BhZ2VfdG9r", - "ZW4YAiABKAkiyQEKEUJhdGNoV3JpdGVSZXF1ZXN0EhUKCGRhdGFiYXNlGAEg", - "ASgJQgPgQQISKgoGd3JpdGVzGAIgAygLMhouZ29vZ2xlLmZpcmVzdG9yZS52", - "MS5Xcml0ZRJCCgZsYWJlbHMYAyADKAsyMi5nb29nbGUuZmlyZXN0b3JlLnYx", - "LkJhdGNoV3JpdGVSZXF1ZXN0LkxhYmVsc0VudHJ5Gi0KC0xhYmVsc0VudHJ5", - "EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEicQoSQmF0Y2hXcml0", - "ZVJlc3BvbnNlEjcKDXdyaXRlX3Jlc3VsdHMYASADKAsyIC5nb29nbGUuZmly", - "ZXN0b3JlLnYxLldyaXRlUmVzdWx0EiIKBnN0YXR1cxgCIAMoCzISLmdvb2ds", - "ZS5ycGMuU3RhdHVzMvsbCglGaXJlc3RvcmUSjwEKC0dldERvY3VtZW50Eicu", - "Z29vZ2xlLmZpcmVzdG9yZS52MS5HZXREb2N1bWVudFJlcXVlc3QaHS5nb29n", - "bGUuZmlyZXN0b3JlLnYxLkRvY3VtZW50IjiC0+STAjISMC92MS97bmFtZT1w", - "cm9qZWN0cy8qL2RhdGFiYXNlcy8qL2RvY3VtZW50cy8qLyoqfRL1AQoNTGlz", - "dERvY3VtZW50cxIpLmdvb2dsZS5maXJlc3RvcmUudjEuTGlzdERvY3VtZW50", - "c1JlcXVlc3QaKi5nb29nbGUuZmlyZXN0b3JlLnYxLkxpc3REb2N1bWVudHNS", - "ZXNwb25zZSKMAYLT5JMChQESQi92MS97cGFyZW50PXByb2plY3RzLyovZGF0", - "YWJhc2VzLyovZG9jdW1lbnRzLyovKip9L3tjb2xsZWN0aW9uX2lkfVo/Ej0v", - "djEve3BhcmVudD1wcm9qZWN0cy8qL2RhdGFiYXNlcy8qL2RvY3VtZW50c30v", - "e2NvbGxlY3Rpb25faWR9Er8BCg5VcGRhdGVEb2N1bWVudBIqLmdvb2dsZS5m", - "aXJlc3RvcmUudjEuVXBkYXRlRG9jdW1lbnRSZXF1ZXN0Gh0uZ29vZ2xlLmZp", - "cmVzdG9yZS52MS5Eb2N1bWVudCJi2kEUZG9jdW1lbnQsdXBkYXRlX21hc2uC", - "0+STAkUyOS92MS97ZG9jdW1lbnQubmFtZT1wcm9qZWN0cy8qL2RhdGFiYXNl", - "cy8qL2RvY3VtZW50cy8qLyoqfToIZG9jdW1lbnQSlQEKDkRlbGV0ZURvY3Vt", - "ZW50EiouZ29vZ2xlLmZpcmVzdG9yZS52MS5EZWxldGVEb2N1bWVudFJlcXVl", - "c3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiP9pBBG5hbWWC0+STAjIqMC92", - "MS97bmFtZT1wcm9qZWN0cy8qL2RhdGFiYXNlcy8qL2RvY3VtZW50cy8qLyoq", - "fRK5AQoRQmF0Y2hHZXREb2N1bWVudHMSLS5nb29nbGUuZmlyZXN0b3JlLnYx", - "LkJhdGNoR2V0RG9jdW1lbnRzUmVxdWVzdBouLmdvb2dsZS5maXJlc3RvcmUu", - "djEuQmF0Y2hHZXREb2N1bWVudHNSZXNwb25zZSJDgtPkkwI9IjgvdjEve2Rh", - "dGFiYXNlPXByb2plY3RzLyovZGF0YWJhc2VzLyp9L2RvY3VtZW50czpiYXRj", - "aEdldDoBKjABEscBChBCZWdpblRyYW5zYWN0aW9uEiwuZ29vZ2xlLmZpcmVz", - "dG9yZS52MS5CZWdpblRyYW5zYWN0aW9uUmVxdWVzdBotLmdvb2dsZS5maXJl", - "c3RvcmUudjEuQmVnaW5UcmFuc2FjdGlvblJlc3BvbnNlIlbaQQhkYXRhYmFz", - "ZYLT5JMCRSJAL3YxL3tkYXRhYmFzZT1wcm9qZWN0cy8qL2RhdGFiYXNlcy8q", - "fS9kb2N1bWVudHM6YmVnaW5UcmFuc2FjdGlvbjoBKhKmAQoGQ29tbWl0EiIu", - "Z29vZ2xlLmZpcmVzdG9yZS52MS5Db21taXRSZXF1ZXN0GiMuZ29vZ2xlLmZp", - "cmVzdG9yZS52MS5Db21taXRSZXNwb25zZSJT2kEPZGF0YWJhc2Usd3JpdGVz", - "gtPkkwI7IjYvdjEve2RhdGFiYXNlPXByb2plY3RzLyovZGF0YWJhc2VzLyp9", - "L2RvY3VtZW50czpjb21taXQ6ASoSpAEKCFJvbGxiYWNrEiQuZ29vZ2xlLmZp", - "cmVzdG9yZS52MS5Sb2xsYmFja1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYu", - "RW1wdHkiWtpBFGRhdGFiYXNlLHRyYW5zYWN0aW9ugtPkkwI9IjgvdjEve2Rh", - "dGFiYXNlPXByb2plY3RzLyovZGF0YWJhc2VzLyp9L2RvY3VtZW50czpyb2xs", - "YmFjazoBKhLfAQoIUnVuUXVlcnkSJC5nb29nbGUuZmlyZXN0b3JlLnYxLlJ1", - "blF1ZXJ5UmVxdWVzdBolLmdvb2dsZS5maXJlc3RvcmUudjEuUnVuUXVlcnlS", - "ZXNwb25zZSKDAYLT5JMCfSI2L3YxL3twYXJlbnQ9cHJvamVjdHMvKi9kYXRh", - "YmFzZXMvKi9kb2N1bWVudHN9OnJ1blF1ZXJ5OgEqWkAiOy92MS97cGFyZW50", - "PXByb2plY3RzLyovZGF0YWJhc2VzLyovZG9jdW1lbnRzLyovKip9OnJ1blF1", - "ZXJ5OgEqMAESngIKD0V4ZWN1dGVQaXBlbGluZRIrLmdvb2dsZS5maXJlc3Rv", - "cmUudjEuRXhlY3V0ZVBpcGVsaW5lUmVxdWVzdBosLmdvb2dsZS5maXJlc3Rv", - "cmUudjEuRXhlY3V0ZVBpcGVsaW5lUmVzcG9uc2UirQGC0+STAkQiPy92MS97", - "ZGF0YWJhc2U9cHJvamVjdHMvKi9kYXRhYmFzZXMvKn0vZG9jdW1lbnRzOmV4", - "ZWN1dGVQaXBlbGluZToBKorT5JMCXRImCghkYXRhYmFzZRIacHJvamVjdHMv", - "e3Byb2plY3RfaWQ9Kn0vKioSMwoIZGF0YWJhc2USJ3Byb2plY3RzLyovZGF0", - "YWJhc2VzL3tkYXRhYmFzZV9pZD0qfS8qKjABEpcCChNSdW5BZ2dyZWdhdGlv", - "blF1ZXJ5Ei8uZ29vZ2xlLmZpcmVzdG9yZS52MS5SdW5BZ2dyZWdhdGlvblF1", - "ZXJ5UmVxdWVzdBowLmdvb2dsZS5maXJlc3RvcmUudjEuUnVuQWdncmVnYXRp", - "b25RdWVyeVJlc3BvbnNlIpoBgtPkkwKTASJBL3YxL3twYXJlbnQ9cHJvamVj", - "dHMvKi9kYXRhYmFzZXMvKi9kb2N1bWVudHN9OnJ1bkFnZ3JlZ2F0aW9uUXVl", - "cnk6ASpaSyJGL3YxL3twYXJlbnQ9cHJvamVjdHMvKi9kYXRhYmFzZXMvKi9k", - "b2N1bWVudHMvKi8qKn06cnVuQWdncmVnYXRpb25RdWVyeToBKjABEvwBCg5Q", - "YXJ0aXRpb25RdWVyeRIqLmdvb2dsZS5maXJlc3RvcmUudjEuUGFydGl0aW9u", - "UXVlcnlSZXF1ZXN0GisuZ29vZ2xlLmZpcmVzdG9yZS52MS5QYXJ0aXRpb25R", - "dWVyeVJlc3BvbnNlIpABgtPkkwKJASI8L3YxL3twYXJlbnQ9cHJvamVjdHMv", - "Ki9kYXRhYmFzZXMvKi9kb2N1bWVudHN9OnBhcnRpdGlvblF1ZXJ5OgEqWkYi", - "QS92MS97cGFyZW50PXByb2plY3RzLyovZGF0YWJhc2VzLyovZG9jdW1lbnRz", - "LyovKip9OnBhcnRpdGlvblF1ZXJ5OgEqEpQBCgVXcml0ZRIhLmdvb2dsZS5m", - "aXJlc3RvcmUudjEuV3JpdGVSZXF1ZXN0GiIuZ29vZ2xlLmZpcmVzdG9yZS52", - "MS5Xcml0ZVJlc3BvbnNlIkCC0+STAjoiNS92MS97ZGF0YWJhc2U9cHJvamVj", - "dHMvKi9kYXRhYmFzZXMvKn0vZG9jdW1lbnRzOndyaXRlOgEqKAEwARKYAQoG", - "TGlzdGVuEiIuZ29vZ2xlLmZpcmVzdG9yZS52MS5MaXN0ZW5SZXF1ZXN0GiMu", - "Z29vZ2xlLmZpcmVzdG9yZS52MS5MaXN0ZW5SZXNwb25zZSJBgtPkkwI7IjYv", - "djEve2RhdGFiYXNlPXByb2plY3RzLyovZGF0YWJhc2VzLyp9L2RvY3VtZW50", - "czpsaXN0ZW46ASooATABEpQCChFMaXN0Q29sbGVjdGlvbklkcxItLmdvb2ds", - "ZS5maXJlc3RvcmUudjEuTGlzdENvbGxlY3Rpb25JZHNSZXF1ZXN0Gi4uZ29v", - "Z2xlLmZpcmVzdG9yZS52MS5MaXN0Q29sbGVjdGlvbklkc1Jlc3BvbnNlIp8B", - "2kEGcGFyZW50gtPkkwKPASI/L3YxL3twYXJlbnQ9cHJvamVjdHMvKi9kYXRh", - "YmFzZXMvKi9kb2N1bWVudHN9Omxpc3RDb2xsZWN0aW9uSWRzOgEqWkkiRC92", - "MS97cGFyZW50PXByb2plY3RzLyovZGF0YWJhc2VzLyovZG9jdW1lbnRzLyov", - "Kip9Omxpc3RDb2xsZWN0aW9uSWRzOgEqEqQBCgpCYXRjaFdyaXRlEiYuZ29v", - "Z2xlLmZpcmVzdG9yZS52MS5CYXRjaFdyaXRlUmVxdWVzdBonLmdvb2dsZS5m", - "aXJlc3RvcmUudjEuQmF0Y2hXcml0ZVJlc3BvbnNlIkWC0+STAj8iOi92MS97", - "ZGF0YWJhc2U9cHJvamVjdHMvKi9kYXRhYmFzZXMvKn0vZG9jdW1lbnRzOmJh", - "dGNoV3JpdGU6ASoSrwEKDkNyZWF0ZURvY3VtZW50EiouZ29vZ2xlLmZpcmVz", - "dG9yZS52MS5DcmVhdGVEb2N1bWVudFJlcXVlc3QaHS5nb29nbGUuZmlyZXN0", - "b3JlLnYxLkRvY3VtZW50IlKC0+STAkwiQC92MS97cGFyZW50PXByb2plY3Rz", - "LyovZGF0YWJhc2VzLyovZG9jdW1lbnRzLyoqfS97Y29sbGVjdGlvbl9pZH06", - "CGRvY3VtZW50GnbKQRhmaXJlc3RvcmUuZ29vZ2xlYXBpcy5jb23SQVhodHRw", - "czovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2Nsb3VkLXBsYXRmb3JtLGh0", - "dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGF0YXN0b3JlQr8BChdj", - "b20uZ29vZ2xlLmZpcmVzdG9yZS52MUIORmlyZXN0b3JlUHJvdG9QAVo7Y2xv", - "dWQuZ29vZ2xlLmNvbS9nby9maXJlc3RvcmUvYXBpdjEvZmlyZXN0b3JlcGI7", - "ZmlyZXN0b3JlcGKqAhlHb29nbGUuQ2xvdWQuRmlyZXN0b3JlLlYxygIZR29v", - "Z2xlXENsb3VkXEZpcmVzdG9yZVxWMeoCHEdvb2dsZTo6Q2xvdWQ6OkZpcmVz", - "dG9yZTo6VjFiBnByb3RvMw==")); + "Gi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAESJAoXYXV0b19jb21taXRf", + "dHJhbnNhY3Rpb24YCSABKAhCA+BBAUIPCg1waXBlbGluZV90eXBlQhYKFGNv", + "bnNpc3RlbmN5X3NlbGVjdG9yIswBChdFeGVjdXRlUGlwZWxpbmVSZXNwb25z", + "ZRITCgt0cmFuc2FjdGlvbhgBIAEoDBIuCgdyZXN1bHRzGAIgAygLMh0uZ29v", + "Z2xlLmZpcmVzdG9yZS52MS5Eb2N1bWVudBIyCg5leGVjdXRpb25fdGltZRgD", + "IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoNZXhwbGFpbl9z", + "dGF0cxgEIAEoCzIhLmdvb2dsZS5maXJlc3RvcmUudjEuRXhwbGFpblN0YXRz", + "Iv8CChpSdW5BZ2dyZWdhdGlvblF1ZXJ5UmVxdWVzdBITCgZwYXJlbnQYASAB", + "KAlCA+BBAhJXChxzdHJ1Y3R1cmVkX2FnZ3JlZ2F0aW9uX3F1ZXJ5GAIgASgL", + "Mi8uZ29vZ2xlLmZpcmVzdG9yZS52MS5TdHJ1Y3R1cmVkQWdncmVnYXRpb25R", + "dWVyeUgAEhUKC3RyYW5zYWN0aW9uGAQgASgMSAESQgoPbmV3X3RyYW5zYWN0", + "aW9uGAUgASgLMicuZ29vZ2xlLmZpcmVzdG9yZS52MS5UcmFuc2FjdGlvbk9w", + "dGlvbnNIARIvCglyZWFkX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYu", + "VGltZXN0YW1wSAESQQoPZXhwbGFpbl9vcHRpb25zGAggASgLMiMuZ29vZ2xl", + "LmZpcmVzdG9yZS52MS5FeHBsYWluT3B0aW9uc0ID4EEBQgwKCnF1ZXJ5X3R5", + "cGVCFgoUY29uc2lzdGVuY3lfc2VsZWN0b3Ii1wEKG1J1bkFnZ3JlZ2F0aW9u", + "UXVlcnlSZXNwb25zZRI2CgZyZXN1bHQYASABKAsyJi5nb29nbGUuZmlyZXN0", + "b3JlLnYxLkFnZ3JlZ2F0aW9uUmVzdWx0EhMKC3RyYW5zYWN0aW9uGAIgASgM", + "Ei0KCXJlYWRfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3Rh", + "bXASPAoPZXhwbGFpbl9tZXRyaWNzGAogASgLMiMuZ29vZ2xlLmZpcmVzdG9y", + "ZS52MS5FeHBsYWluTWV0cmljcyKFAgoVUGFydGl0aW9uUXVlcnlSZXF1ZXN0", + "EhMKBnBhcmVudBgBIAEoCUID4EECEkAKEHN0cnVjdHVyZWRfcXVlcnkYAiAB", + "KAsyJC5nb29nbGUuZmlyZXN0b3JlLnYxLlN0cnVjdHVyZWRRdWVyeUgAEhcK", + "D3BhcnRpdGlvbl9jb3VudBgDIAEoAxISCgpwYWdlX3Rva2VuGAQgASgJEhEK", + "CXBhZ2Vfc2l6ZRgFIAEoBRIvCglyZWFkX3RpbWUYBiABKAsyGi5nb29nbGUu", + "cHJvdG9idWYuVGltZXN0YW1wSAFCDAoKcXVlcnlfdHlwZUIWChRjb25zaXN0", + "ZW5jeV9zZWxlY3RvciJiChZQYXJ0aXRpb25RdWVyeVJlc3BvbnNlEi8KCnBh", + "cnRpdGlvbnMYASADKAsyGy5nb29nbGUuZmlyZXN0b3JlLnYxLkN1cnNvchIX", + "Cg9uZXh0X3BhZ2VfdG9rZW4YAiABKAki6AEKDFdyaXRlUmVxdWVzdBIVCghk", + "YXRhYmFzZRgBIAEoCUID4EECEhEKCXN0cmVhbV9pZBgCIAEoCRIqCgZ3cml0", + "ZXMYAyADKAsyGi5nb29nbGUuZmlyZXN0b3JlLnYxLldyaXRlEhQKDHN0cmVh", + "bV90b2tlbhgEIAEoDBI9CgZsYWJlbHMYBSADKAsyLS5nb29nbGUuZmlyZXN0", + "b3JlLnYxLldyaXRlUmVxdWVzdC5MYWJlbHNFbnRyeRotCgtMYWJlbHNFbnRy", + "eRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIqIBCg1Xcml0ZVJl", + "c3BvbnNlEhEKCXN0cmVhbV9pZBgBIAEoCRIUCgxzdHJlYW1fdG9rZW4YAiAB", + "KAwSNwoNd3JpdGVfcmVzdWx0cxgDIAMoCzIgLmdvb2dsZS5maXJlc3RvcmUu", + "djEuV3JpdGVSZXN1bHQSLwoLY29tbWl0X3RpbWUYBCABKAsyGi5nb29nbGUu", + "cHJvdG9idWYuVGltZXN0YW1wIvIBCg1MaXN0ZW5SZXF1ZXN0EhUKCGRhdGFi", + "YXNlGAEgASgJQgPgQQISMQoKYWRkX3RhcmdldBgCIAEoCzIbLmdvb2dsZS5m", + "aXJlc3RvcmUudjEuVGFyZ2V0SAASFwoNcmVtb3ZlX3RhcmdldBgDIAEoBUgA", + "Ej4KBmxhYmVscxgEIAMoCzIuLmdvb2dsZS5maXJlc3RvcmUudjEuTGlzdGVu", + "UmVxdWVzdC5MYWJlbHNFbnRyeRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASAB", + "KAkSDQoFdmFsdWUYAiABKAk6AjgBQg8KDXRhcmdldF9jaGFuZ2Ui1QIKDkxp", + "c3RlblJlc3BvbnNlEjoKDXRhcmdldF9jaGFuZ2UYAiABKAsyIS5nb29nbGUu", + "ZmlyZXN0b3JlLnYxLlRhcmdldENoYW5nZUgAEj4KD2RvY3VtZW50X2NoYW5n", + "ZRgDIAEoCzIjLmdvb2dsZS5maXJlc3RvcmUudjEuRG9jdW1lbnRDaGFuZ2VI", + "ABI+Cg9kb2N1bWVudF9kZWxldGUYBCABKAsyIy5nb29nbGUuZmlyZXN0b3Jl", + "LnYxLkRvY3VtZW50RGVsZXRlSAASPgoPZG9jdW1lbnRfcmVtb3ZlGAYgASgL", + "MiMuZ29vZ2xlLmZpcmVzdG9yZS52MS5Eb2N1bWVudFJlbW92ZUgAEjYKBmZp", + "bHRlchgFIAEoCzIkLmdvb2dsZS5maXJlc3RvcmUudjEuRXhpc3RlbmNlRmls", + "dGVySABCDwoNcmVzcG9uc2VfdHlwZSLWAwoGVGFyZ2V0EjgKBXF1ZXJ5GAIg", + "ASgLMicuZ29vZ2xlLmZpcmVzdG9yZS52MS5UYXJnZXQuUXVlcnlUYXJnZXRI", + "ABJACglkb2N1bWVudHMYAyABKAsyKy5nb29nbGUuZmlyZXN0b3JlLnYxLlRh", + "cmdldC5Eb2N1bWVudHNUYXJnZXRIABIWCgxyZXN1bWVfdG9rZW4YBCABKAxI", + "ARIvCglyZWFkX3RpbWUYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0", + "YW1wSAESEQoJdGFyZ2V0X2lkGAUgASgFEgwKBG9uY2UYBiABKAgSMwoOZXhw", + "ZWN0ZWRfY291bnQYDCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1", + "ZRokCg9Eb2N1bWVudHNUYXJnZXQSEQoJZG9jdW1lbnRzGAIgAygJGm0KC1F1", + "ZXJ5VGFyZ2V0Eg4KBnBhcmVudBgBIAEoCRJAChBzdHJ1Y3R1cmVkX3F1ZXJ5", + "GAIgASgLMiQuZ29vZ2xlLmZpcmVzdG9yZS52MS5TdHJ1Y3R1cmVkUXVlcnlI", + "AEIMCgpxdWVyeV90eXBlQg0KC3RhcmdldF90eXBlQg0KC3Jlc3VtZV90eXBl", + "IqoCCgxUYXJnZXRDaGFuZ2USTgoSdGFyZ2V0X2NoYW5nZV90eXBlGAEgASgO", + "MjIuZ29vZ2xlLmZpcmVzdG9yZS52MS5UYXJnZXRDaGFuZ2UuVGFyZ2V0Q2hh", + "bmdlVHlwZRISCgp0YXJnZXRfaWRzGAIgAygFEiEKBWNhdXNlGAMgASgLMhIu", + "Z29vZ2xlLnJwYy5TdGF0dXMSFAoMcmVzdW1lX3Rva2VuGAQgASgMEi0KCXJl", + "YWRfdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiTgoQ", + "VGFyZ2V0Q2hhbmdlVHlwZRINCglOT19DSEFOR0UQABIHCgNBREQQARIKCgZS", + "RU1PVkUQAhILCgdDVVJSRU5UEAMSCQoFUkVTRVQQBCKfAQoYTGlzdENvbGxl", + "Y3Rpb25JZHNSZXF1ZXN0EhMKBnBhcmVudBgBIAEoCUID4EECEhEKCXBhZ2Vf", + "c2l6ZRgCIAEoBRISCgpwYWdlX3Rva2VuGAMgASgJEi8KCXJlYWRfdGltZRgE", + "IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAEIWChRjb25zaXN0", + "ZW5jeV9zZWxlY3RvciJMChlMaXN0Q29sbGVjdGlvbklkc1Jlc3BvbnNlEhYK", + "DmNvbGxlY3Rpb25faWRzGAEgAygJEhcKD25leHRfcGFnZV90b2tlbhgCIAEo", + "CSLJAQoRQmF0Y2hXcml0ZVJlcXVlc3QSFQoIZGF0YWJhc2UYASABKAlCA+BB", + "AhIqCgZ3cml0ZXMYAiADKAsyGi5nb29nbGUuZmlyZXN0b3JlLnYxLldyaXRl", + "EkIKBmxhYmVscxgDIAMoCzIyLmdvb2dsZS5maXJlc3RvcmUudjEuQmF0Y2hX", + "cml0ZVJlcXVlc3QuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoDa2V5", + "GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJxChJCYXRjaFdyaXRlUmVzcG9u", + "c2USNwoNd3JpdGVfcmVzdWx0cxgBIAMoCzIgLmdvb2dsZS5maXJlc3RvcmUu", + "djEuV3JpdGVSZXN1bHQSIgoGc3RhdHVzGAIgAygLMhIuZ29vZ2xlLnJwYy5T", + "dGF0dXMy+xsKCUZpcmVzdG9yZRKPAQoLR2V0RG9jdW1lbnQSJy5nb29nbGUu", + "ZmlyZXN0b3JlLnYxLkdldERvY3VtZW50UmVxdWVzdBodLmdvb2dsZS5maXJl", + "c3RvcmUudjEuRG9jdW1lbnQiOILT5JMCMhIwL3YxL3tuYW1lPXByb2plY3Rz", + "LyovZGF0YWJhc2VzLyovZG9jdW1lbnRzLyovKip9EvUBCg1MaXN0RG9jdW1l", + "bnRzEikuZ29vZ2xlLmZpcmVzdG9yZS52MS5MaXN0RG9jdW1lbnRzUmVxdWVz", + "dBoqLmdvb2dsZS5maXJlc3RvcmUudjEuTGlzdERvY3VtZW50c1Jlc3BvbnNl", + "IowBgtPkkwKFARJCL3YxL3twYXJlbnQ9cHJvamVjdHMvKi9kYXRhYmFzZXMv", + "Ki9kb2N1bWVudHMvKi8qKn0ve2NvbGxlY3Rpb25faWR9Wj8SPS92MS97cGFy", + "ZW50PXByb2plY3RzLyovZGF0YWJhc2VzLyovZG9jdW1lbnRzfS97Y29sbGVj", + "dGlvbl9pZH0SvwEKDlVwZGF0ZURvY3VtZW50EiouZ29vZ2xlLmZpcmVzdG9y", + "ZS52MS5VcGRhdGVEb2N1bWVudFJlcXVlc3QaHS5nb29nbGUuZmlyZXN0b3Jl", + "LnYxLkRvY3VtZW50ImLaQRRkb2N1bWVudCx1cGRhdGVfbWFza4LT5JMCRTI5", + "L3YxL3tkb2N1bWVudC5uYW1lPXByb2plY3RzLyovZGF0YWJhc2VzLyovZG9j", + "dW1lbnRzLyovKip9Oghkb2N1bWVudBKVAQoORGVsZXRlRG9jdW1lbnQSKi5n", + "b29nbGUuZmlyZXN0b3JlLnYxLkRlbGV0ZURvY3VtZW50UmVxdWVzdBoWLmdv", + "b2dsZS5wcm90b2J1Zi5FbXB0eSI/2kEEbmFtZYLT5JMCMiowL3YxL3tuYW1l", + "PXByb2plY3RzLyovZGF0YWJhc2VzLyovZG9jdW1lbnRzLyovKip9ErkBChFC", + "YXRjaEdldERvY3VtZW50cxItLmdvb2dsZS5maXJlc3RvcmUudjEuQmF0Y2hH", + "ZXREb2N1bWVudHNSZXF1ZXN0Gi4uZ29vZ2xlLmZpcmVzdG9yZS52MS5CYXRj", + "aEdldERvY3VtZW50c1Jlc3BvbnNlIkOC0+STAj0iOC92MS97ZGF0YWJhc2U9", + "cHJvamVjdHMvKi9kYXRhYmFzZXMvKn0vZG9jdW1lbnRzOmJhdGNoR2V0OgEq", + "MAESxwEKEEJlZ2luVHJhbnNhY3Rpb24SLC5nb29nbGUuZmlyZXN0b3JlLnYx", + "LkJlZ2luVHJhbnNhY3Rpb25SZXF1ZXN0Gi0uZ29vZ2xlLmZpcmVzdG9yZS52", + "MS5CZWdpblRyYW5zYWN0aW9uUmVzcG9uc2UiVtpBCGRhdGFiYXNlgtPkkwJF", + "IkAvdjEve2RhdGFiYXNlPXByb2plY3RzLyovZGF0YWJhc2VzLyp9L2RvY3Vt", + "ZW50czpiZWdpblRyYW5zYWN0aW9uOgEqEqYBCgZDb21taXQSIi5nb29nbGUu", + "ZmlyZXN0b3JlLnYxLkNvbW1pdFJlcXVlc3QaIy5nb29nbGUuZmlyZXN0b3Jl", + "LnYxLkNvbW1pdFJlc3BvbnNlIlPaQQ9kYXRhYmFzZSx3cml0ZXOC0+STAjsi", + "Ni92MS97ZGF0YWJhc2U9cHJvamVjdHMvKi9kYXRhYmFzZXMvKn0vZG9jdW1l", + "bnRzOmNvbW1pdDoBKhKkAQoIUm9sbGJhY2sSJC5nb29nbGUuZmlyZXN0b3Jl", + "LnYxLlJvbGxiYWNrUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJa", + "2kEUZGF0YWJhc2UsdHJhbnNhY3Rpb26C0+STAj0iOC92MS97ZGF0YWJhc2U9", + "cHJvamVjdHMvKi9kYXRhYmFzZXMvKn0vZG9jdW1lbnRzOnJvbGxiYWNrOgEq", + "Et8BCghSdW5RdWVyeRIkLmdvb2dsZS5maXJlc3RvcmUudjEuUnVuUXVlcnlS", + "ZXF1ZXN0GiUuZ29vZ2xlLmZpcmVzdG9yZS52MS5SdW5RdWVyeVJlc3BvbnNl", + "IoMBgtPkkwJ9IjYvdjEve3BhcmVudD1wcm9qZWN0cy8qL2RhdGFiYXNlcy8q", + "L2RvY3VtZW50c306cnVuUXVlcnk6ASpaQCI7L3YxL3twYXJlbnQ9cHJvamVj", + "dHMvKi9kYXRhYmFzZXMvKi9kb2N1bWVudHMvKi8qKn06cnVuUXVlcnk6ASow", + "ARKeAgoPRXhlY3V0ZVBpcGVsaW5lEisuZ29vZ2xlLmZpcmVzdG9yZS52MS5F", + "eGVjdXRlUGlwZWxpbmVSZXF1ZXN0GiwuZ29vZ2xlLmZpcmVzdG9yZS52MS5F", + "eGVjdXRlUGlwZWxpbmVSZXNwb25zZSKtAYLT5JMCRCI/L3YxL3tkYXRhYmFz", + "ZT1wcm9qZWN0cy8qL2RhdGFiYXNlcy8qfS9kb2N1bWVudHM6ZXhlY3V0ZVBp", + "cGVsaW5lOgEqitPkkwJdEiYKCGRhdGFiYXNlEhpwcm9qZWN0cy97cHJvamVj", + "dF9pZD0qfS8qKhIzCghkYXRhYmFzZRIncHJvamVjdHMvKi9kYXRhYmFzZXMv", + "e2RhdGFiYXNlX2lkPSp9LyoqMAESlwIKE1J1bkFnZ3JlZ2F0aW9uUXVlcnkS", + "Ly5nb29nbGUuZmlyZXN0b3JlLnYxLlJ1bkFnZ3JlZ2F0aW9uUXVlcnlSZXF1", + "ZXN0GjAuZ29vZ2xlLmZpcmVzdG9yZS52MS5SdW5BZ2dyZWdhdGlvblF1ZXJ5", + "UmVzcG9uc2UimgGC0+STApMBIkEvdjEve3BhcmVudD1wcm9qZWN0cy8qL2Rh", + "dGFiYXNlcy8qL2RvY3VtZW50c306cnVuQWdncmVnYXRpb25RdWVyeToBKlpL", + "IkYvdjEve3BhcmVudD1wcm9qZWN0cy8qL2RhdGFiYXNlcy8qL2RvY3VtZW50", + "cy8qLyoqfTpydW5BZ2dyZWdhdGlvblF1ZXJ5OgEqMAES/AEKDlBhcnRpdGlv", + "blF1ZXJ5EiouZ29vZ2xlLmZpcmVzdG9yZS52MS5QYXJ0aXRpb25RdWVyeVJl", + "cXVlc3QaKy5nb29nbGUuZmlyZXN0b3JlLnYxLlBhcnRpdGlvblF1ZXJ5UmVz", + "cG9uc2UikAGC0+STAokBIjwvdjEve3BhcmVudD1wcm9qZWN0cy8qL2RhdGFi", + "YXNlcy8qL2RvY3VtZW50c306cGFydGl0aW9uUXVlcnk6ASpaRiJBL3YxL3tw", + "YXJlbnQ9cHJvamVjdHMvKi9kYXRhYmFzZXMvKi9kb2N1bWVudHMvKi8qKn06", + "cGFydGl0aW9uUXVlcnk6ASoSlAEKBVdyaXRlEiEuZ29vZ2xlLmZpcmVzdG9y", + "ZS52MS5Xcml0ZVJlcXVlc3QaIi5nb29nbGUuZmlyZXN0b3JlLnYxLldyaXRl", + "UmVzcG9uc2UiQILT5JMCOiI1L3YxL3tkYXRhYmFzZT1wcm9qZWN0cy8qL2Rh", + "dGFiYXNlcy8qfS9kb2N1bWVudHM6d3JpdGU6ASooATABEpgBCgZMaXN0ZW4S", + "Ii5nb29nbGUuZmlyZXN0b3JlLnYxLkxpc3RlblJlcXVlc3QaIy5nb29nbGUu", + "ZmlyZXN0b3JlLnYxLkxpc3RlblJlc3BvbnNlIkGC0+STAjsiNi92MS97ZGF0", + "YWJhc2U9cHJvamVjdHMvKi9kYXRhYmFzZXMvKn0vZG9jdW1lbnRzOmxpc3Rl", + "bjoBKigBMAESlAIKEUxpc3RDb2xsZWN0aW9uSWRzEi0uZ29vZ2xlLmZpcmVz", + "dG9yZS52MS5MaXN0Q29sbGVjdGlvbklkc1JlcXVlc3QaLi5nb29nbGUuZmly", + "ZXN0b3JlLnYxLkxpc3RDb2xsZWN0aW9uSWRzUmVzcG9uc2UinwHaQQZwYXJl", + "bnSC0+STAo8BIj8vdjEve3BhcmVudD1wcm9qZWN0cy8qL2RhdGFiYXNlcy8q", + "L2RvY3VtZW50c306bGlzdENvbGxlY3Rpb25JZHM6ASpaSSJEL3YxL3twYXJl", + "bnQ9cHJvamVjdHMvKi9kYXRhYmFzZXMvKi9kb2N1bWVudHMvKi8qKn06bGlz", + "dENvbGxlY3Rpb25JZHM6ASoSpAEKCkJhdGNoV3JpdGUSJi5nb29nbGUuZmly", + "ZXN0b3JlLnYxLkJhdGNoV3JpdGVSZXF1ZXN0GicuZ29vZ2xlLmZpcmVzdG9y", + "ZS52MS5CYXRjaFdyaXRlUmVzcG9uc2UiRYLT5JMCPyI6L3YxL3tkYXRhYmFz", + "ZT1wcm9qZWN0cy8qL2RhdGFiYXNlcy8qfS9kb2N1bWVudHM6YmF0Y2hXcml0", + "ZToBKhKvAQoOQ3JlYXRlRG9jdW1lbnQSKi5nb29nbGUuZmlyZXN0b3JlLnYx", + "LkNyZWF0ZURvY3VtZW50UmVxdWVzdBodLmdvb2dsZS5maXJlc3RvcmUudjEu", + "RG9jdW1lbnQiUoLT5JMCTCJAL3YxL3twYXJlbnQ9cHJvamVjdHMvKi9kYXRh", + "YmFzZXMvKi9kb2N1bWVudHMvKip9L3tjb2xsZWN0aW9uX2lkfToIZG9jdW1l", + "bnQadspBGGZpcmVzdG9yZS5nb29nbGVhcGlzLmNvbdJBWGh0dHBzOi8vd3d3", + "Lmdvb2dsZWFwaXMuY29tL2F1dGgvY2xvdWQtcGxhdGZvcm0saHR0cHM6Ly93", + "d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kYXRhc3RvcmVCvwEKF2NvbS5nb29n", + "bGUuZmlyZXN0b3JlLnYxQg5GaXJlc3RvcmVQcm90b1ABWjtjbG91ZC5nb29n", + "bGUuY29tL2dvL2ZpcmVzdG9yZS9hcGl2MS9maXJlc3RvcmVwYjtmaXJlc3Rv", + "cmVwYqoCGUdvb2dsZS5DbG91ZC5GaXJlc3RvcmUuVjHKAhlHb29nbGVcQ2xv", + "dWRcRmlyZXN0b3JlXFYx6gIcR29vZ2xlOjpDbG91ZDo6RmlyZXN0b3JlOjpW", + "MWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.RoutingReflection.Descriptor, global::Google.Cloud.Firestore.V1.AggregationResultReflection.Descriptor, global::Google.Cloud.Firestore.V1.CommonReflection.Descriptor, global::Google.Cloud.Firestore.V1.DocumentReflection.Descriptor, global::Google.Cloud.Firestore.V1.ExplainStatsReflection.Descriptor, global::Google.Cloud.Firestore.V1.PipelineReflection.Descriptor, global::Google.Cloud.Firestore.V1.QueryReflection.Descriptor, global::Google.Cloud.Firestore.V1.QueryProfileReflection.Descriptor, global::Google.Cloud.Firestore.V1.WriteReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { @@ -284,7 +285,7 @@ static FirestoreReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.RollbackRequest), global::Google.Cloud.Firestore.V1.RollbackRequest.Parser, new[]{ "Database", "Transaction" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.RunQueryRequest), global::Google.Cloud.Firestore.V1.RunQueryRequest.Parser, new[]{ "Parent", "StructuredQuery", "Transaction", "NewTransaction", "ReadTime", "ExplainOptions" }, new[]{ "QueryType", "ConsistencySelector" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.RunQueryResponse), global::Google.Cloud.Firestore.V1.RunQueryResponse.Parser, new[]{ "Transaction", "Document", "ReadTime", "SkippedResults", "Done", "ExplainMetrics" }, new[]{ "ContinuationSelector" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.ExecutePipelineRequest), global::Google.Cloud.Firestore.V1.ExecutePipelineRequest.Parser, new[]{ "Database", "StructuredPipeline", "Transaction", "NewTransaction", "ReadTime" }, new[]{ "PipelineType", "ConsistencySelector" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.ExecutePipelineRequest), global::Google.Cloud.Firestore.V1.ExecutePipelineRequest.Parser, new[]{ "Database", "StructuredPipeline", "Transaction", "NewTransaction", "ReadTime", "AutoCommitTransaction" }, new[]{ "PipelineType", "ConsistencySelector" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.ExecutePipelineResponse), global::Google.Cloud.Firestore.V1.ExecutePipelineResponse.Parser, new[]{ "Transaction", "Results", "ExecutionTime", "ExplainStats" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.RunAggregationQueryRequest), global::Google.Cloud.Firestore.V1.RunAggregationQueryRequest.Parser, new[]{ "Parent", "StructuredAggregationQuery", "Transaction", "NewTransaction", "ReadTime", "ExplainOptions" }, new[]{ "QueryType", "ConsistencySelector" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Firestore.V1.RunAggregationQueryResponse), global::Google.Cloud.Firestore.V1.RunAggregationQueryResponse.Parser, new[]{ "Result", "Transaction", "ReadTime", "ExplainMetrics" }, null, null, null, null), @@ -5795,6 +5796,7 @@ public ExecutePipelineRequest() { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public ExecutePipelineRequest(ExecutePipelineRequest other) : this() { database_ = other.database_; + autoCommitTransaction_ = other.autoCommitTransaction_; switch (other.PipelineTypeCase) { case PipelineTypeOneofCase.StructuredPipeline: StructuredPipeline = other.StructuredPipeline.Clone(); @@ -5921,6 +5923,23 @@ public void ClearTransaction() { } } + /// Field number for the "auto_commit_transaction" field. + public const int AutoCommitTransactionFieldNumber = 9; + private bool autoCommitTransaction_; + /// + /// Optional. Automatically commits the transaction after the pipeline has been + /// executed. Only permitted in combination with `transaction` or + /// `new_transaction`. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool AutoCommitTransaction { + get { return autoCommitTransaction_; } + set { + autoCommitTransaction_ = value; + } + } + private object pipelineType_; /// Enum of possible cases for the "pipeline_type" oneof. public enum PipelineTypeOneofCase { @@ -5983,6 +6002,7 @@ public bool Equals(ExecutePipelineRequest other) { if (Transaction != other.Transaction) return false; if (!object.Equals(NewTransaction, other.NewTransaction)) return false; if (!object.Equals(ReadTime, other.ReadTime)) return false; + if (AutoCommitTransaction != other.AutoCommitTransaction) return false; if (PipelineTypeCase != other.PipelineTypeCase) return false; if (ConsistencySelectorCase != other.ConsistencySelectorCase) return false; return Equals(_unknownFields, other._unknownFields); @@ -5997,6 +6017,7 @@ public override int GetHashCode() { if (HasTransaction) hash ^= Transaction.GetHashCode(); if (consistencySelectorCase_ == ConsistencySelectorOneofCase.NewTransaction) hash ^= NewTransaction.GetHashCode(); if (consistencySelectorCase_ == ConsistencySelectorOneofCase.ReadTime) hash ^= ReadTime.GetHashCode(); + if (AutoCommitTransaction != false) hash ^= AutoCommitTransaction.GetHashCode(); hash ^= (int) pipelineTypeCase_; hash ^= (int) consistencySelectorCase_; if (_unknownFields != null) { @@ -6037,6 +6058,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(ReadTime); } + if (AutoCommitTransaction != false) { + output.WriteRawTag(72); + output.WriteBool(AutoCommitTransaction); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6067,6 +6092,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(ReadTime); } + if (AutoCommitTransaction != false) { + output.WriteRawTag(72); + output.WriteBool(AutoCommitTransaction); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6092,6 +6121,9 @@ public int CalculateSize() { if (consistencySelectorCase_ == ConsistencySelectorOneofCase.ReadTime) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(ReadTime); } + if (AutoCommitTransaction != false) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6107,6 +6139,9 @@ public void MergeFrom(ExecutePipelineRequest other) { if (other.Database.Length != 0) { Database = other.Database; } + if (other.AutoCommitTransaction != false) { + AutoCommitTransaction = other.AutoCommitTransaction; + } switch (other.PipelineTypeCase) { case PipelineTypeOneofCase.StructuredPipeline: if (StructuredPipeline == null) { @@ -6188,6 +6223,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReadTime = subBuilder; break; } + case 72: { + AutoCommitTransaction = input.ReadBool(); + break; + } } } #endif @@ -6242,6 +6281,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReadTime = subBuilder; break; } + case 72: { + AutoCommitTransaction = input.ReadBool(); + break; + } } } } @@ -11447,6 +11490,9 @@ public ListCollectionIdsRequest Clone() { /// `projects/{project_id}/databases/{database_id}/documents/{document_path}`. /// For example: /// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + /// + /// Use `projects/{project_id}/databases/{database_id}/documents` to list + /// top-level collections. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] diff --git a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/FirestoreClient.g.cs b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/FirestoreClient.g.cs index 0e4bfb914c0f..bc9c52760922 100644 --- a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/FirestoreClient.g.cs +++ b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/FirestoreClient.g.cs @@ -1147,6 +1147,9 @@ public virtual ListenStream Listen(gaxgrpc::CallSettings callSettings = null, ga /// `projects/{project_id}/databases/{database_id}/documents/{document_path}`. /// For example: /// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + /// + /// Use `projects/{project_id}/databases/{database_id}/documents` to list + /// top-level collections. /// /// /// The token returned from the previous request. A value of null or an empty string retrieves the first @@ -1183,6 +1186,9 @@ public virtual ListenStream Listen(gaxgrpc::CallSettings callSettings = null, ga /// `projects/{project_id}/databases/{database_id}/documents/{document_path}`. /// For example: /// `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + /// + /// Use `projects/{project_id}/databases/{database_id}/documents` to list + /// top-level collections. /// /// /// The token returned from the previous request. A value of null or an empty string retrieves the first diff --git a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Query.g.cs b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Query.g.cs index 2185310a84c8..d12bbe3fc4df 100644 --- a/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Query.g.cs +++ b/apis/Google.Cloud.Firestore.V1/Google.Cloud.Firestore.V1/Query.g.cs @@ -249,9 +249,12 @@ public StructuredQuery Clone() { /// /// The order to apply to the query results. /// - /// Firestore allows callers to provide a full ordering, a partial ordering, or - /// no ordering at all. In all cases, Firestore guarantees a stable ordering - /// through the following rules: + /// Callers can provide a full ordering, a partial ordering, or no ordering at + /// all. While Firestore will always respect the provided order, the behavior + /// for queries without a full ordering is different per database edition: + /// + /// In Standard edition, Firestore guarantees a stable ordering through the + /// following rules: /// /// * The `order_by` is required to reference all fields used with an /// inequality filter. @@ -267,6 +270,13 @@ public StructuredQuery Clone() { /// * `WHERE a > 1` becomes `WHERE a > 1 ORDER BY a ASC, __name__ ASC` /// * `WHERE __name__ > ... AND a > 1` becomes /// `WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC` + /// + /// In Enterprise edition, Firestore does not guarantee a stable ordering. + /// Instead it will pick the most efficient ordering based on the indexes + /// available at the time of query execution. This will result in a different + /// ordering for queries that are otherwise identical. To ensure a stable + /// ordering, always include a unique field in the `order_by` clause, such as + /// `__name__`. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] diff --git a/generator-input/pipeline-state.json b/generator-input/pipeline-state.json index 8760857fd313..a1904a542743 100644 --- a/generator-input/pipeline-state.json +++ b/generator-input/pipeline-state.json @@ -4118,7 +4118,7 @@ "generationAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseTimestamp": "2026-03-05T08:28:56.905811928Z", - "lastGeneratedCommit": "359422ce8d726f52e0ad35b48024896c714fa033", + "lastGeneratedCommit": "465f309dd31630c8de4ed10891e494d612fa1864", "lastReleasedCommit": "1ccd68a09ccd14f82d260a8edb96878027295675", "apiPaths": [ "google/firestore/v1" From cadf79bb907fd8987adf02dfd0ae1bd440726481 Mon Sep 17 00:00:00 2001 From: Google Cloud SDK Librarian Date: Wed, 10 Jun 2026 07:15:25 +0000 Subject: [PATCH 6/6] regen: Regenerate Google.Cloud.ModelArmor.V1 at API commit 591ae02 feat: add streaming methods StreamSanitizeUserPrompt and StreamSanitizeModelResponse feat: add StreamingMode enum and field to sanitize requests PiperOrigin-RevId: 929062585 Source-Link: https://github.com/googleapis/googleapis/commit/591ae025072c1608bd7b38039feeb296f640605a --- ...odelResponseRequestObjectAsyncSnippet.g.cs | 1 + ...tizeModelResponseRequestObjectSnippet.g.cs | 1 + ...zeUserPromptRequestObjectAsyncSnippet.g.cs | 1 + ...anitizeUserPromptRequestObjectSnippet.g.cs | 1 + ...nt.StreamSanitizeModelResponseSnippet.g.cs | 83 ++ ...lient.StreamSanitizeUserPromptSnippet.g.cs | 82 ++ ...t_metadata_google.cloud.modelarmor.v1.json | 112 ++- .../ModelArmorClientSnippets.g.cs | 106 +++ .../ModelArmorClient.g.cs | 222 +++++ .../Google.Cloud.ModelArmor.V1/Service.g.cs | 862 +++++++++++------- .../ServiceGrpc.g.cs | 94 +- .../gapic_metadata.json | 12 + generator-input/pipeline-state.json | 2 +- 13 files changed, 1235 insertions(+), 344 deletions(-) create mode 100644 apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeModelResponseSnippet.g.cs create mode 100644 apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeUserPromptSnippet.g.cs diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectAsyncSnippet.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectAsyncSnippet.g.cs index 058eb3e0c502..617034434a53 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectAsyncSnippet.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectAsyncSnippet.g.cs @@ -41,6 +41,7 @@ public async Task SanitizeModelResponseRequestObjectAsync() ModelResponseData = new DataItem(), UserPrompt = "", MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeModelResponseResponse response = await modelArmorClient.SanitizeModelResponseAsync(request); diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectSnippet.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectSnippet.g.cs index c5f77e808f5c..038ddb0555f2 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectSnippet.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeModelResponseRequestObjectSnippet.g.cs @@ -40,6 +40,7 @@ public void SanitizeModelResponseRequestObject() ModelResponseData = new DataItem(), UserPrompt = "", MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeModelResponseResponse response = modelArmorClient.SanitizeModelResponse(request); diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectAsyncSnippet.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectAsyncSnippet.g.cs index f071a8d24ed3..848b5f4934c4 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectAsyncSnippet.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectAsyncSnippet.g.cs @@ -40,6 +40,7 @@ public async Task SanitizeUserPromptRequestObjectAsync() TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), UserPromptData = new DataItem(), MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeUserPromptResponse response = await modelArmorClient.SanitizeUserPromptAsync(request); diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectSnippet.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectSnippet.g.cs index 4eaad51d6308..2dc0c873d7fe 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectSnippet.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.SanitizeUserPromptRequestObjectSnippet.g.cs @@ -39,6 +39,7 @@ public void SanitizeUserPromptRequestObject() TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), UserPromptData = new DataItem(), MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeUserPromptResponse response = modelArmorClient.SanitizeUserPrompt(request); diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeModelResponseSnippet.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeModelResponseSnippet.g.cs new file mode 100644 index 000000000000..e8b420f4bae8 --- /dev/null +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeModelResponseSnippet.g.cs @@ -0,0 +1,83 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated code. DO NOT EDIT! + +namespace GoogleCSharpSnippets +{ + // [START modelarmor_v1_generated_ModelArmor_StreamSanitizeModelResponse_sync] + using Google.Api.Gax.Grpc; + using Google.Cloud.ModelArmor.V1; + using System.Threading.Tasks; + + public sealed partial class GeneratedModelArmorClientSnippets + { + /// Snippet for StreamSanitizeModelResponse + /// + /// This snippet has been automatically generated and should be regarded as a code template only. + /// It will require modifications to work: + /// - It may require correct/in-range values for request initialization. + /// - It may require specifying regional endpoints when creating the service client as shown in + /// https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint. + /// + public async Task StreamSanitizeModelResponse() + { + // Create client + ModelArmorClient modelArmorClient = ModelArmorClient.Create(); + // Initialize streaming call, retrieving the stream object + using ModelArmorClient.StreamSanitizeModelResponseStream response = modelArmorClient.StreamSanitizeModelResponse(); + + // Sending requests and retrieving responses can be arbitrarily interleaved + // Exact sequence will depend on client/server behavior + + // Create task to do something with responses from server + Task responseHandlerTask = Task.Run(async () => + { + // Note that C# 8 code can use await foreach + AsyncResponseStream responseStream = response.GetResponseStream(); + while (await responseStream.MoveNextAsync()) + { + SanitizeModelResponseResponse responseItem = responseStream.Current; + // Do something with streamed response + } + // The response stream has completed + }); + + // Send requests to the server + bool done = false; + while (!done) + { + // Initialize a request + SanitizeModelResponseRequest request = new SanitizeModelResponseRequest + { + TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), + ModelResponseData = new DataItem(), + UserPrompt = "", + MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, + }; + // Stream a request to the server + await response.WriteAsync(request); + // Set "done" to true when sending requests is complete + } + + // Complete writing requests to the stream + await response.WriteCompleteAsync(); + // Await the response handler + // This will complete once all server responses have been processed + await responseHandlerTask; + } + } + // [END modelarmor_v1_generated_ModelArmor_StreamSanitizeModelResponse_sync] +} diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeUserPromptSnippet.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeUserPromptSnippet.g.cs new file mode 100644 index 000000000000..bb325ac86ed9 --- /dev/null +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/ModelArmorClient.StreamSanitizeUserPromptSnippet.g.cs @@ -0,0 +1,82 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated code. DO NOT EDIT! + +namespace GoogleCSharpSnippets +{ + // [START modelarmor_v1_generated_ModelArmor_StreamSanitizeUserPrompt_sync] + using Google.Api.Gax.Grpc; + using Google.Cloud.ModelArmor.V1; + using System.Threading.Tasks; + + public sealed partial class GeneratedModelArmorClientSnippets + { + /// Snippet for StreamSanitizeUserPrompt + /// + /// This snippet has been automatically generated and should be regarded as a code template only. + /// It will require modifications to work: + /// - It may require correct/in-range values for request initialization. + /// - It may require specifying regional endpoints when creating the service client as shown in + /// https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint. + /// + public async Task StreamSanitizeUserPrompt() + { + // Create client + ModelArmorClient modelArmorClient = ModelArmorClient.Create(); + // Initialize streaming call, retrieving the stream object + using ModelArmorClient.StreamSanitizeUserPromptStream response = modelArmorClient.StreamSanitizeUserPrompt(); + + // Sending requests and retrieving responses can be arbitrarily interleaved + // Exact sequence will depend on client/server behavior + + // Create task to do something with responses from server + Task responseHandlerTask = Task.Run(async () => + { + // Note that C# 8 code can use await foreach + AsyncResponseStream responseStream = response.GetResponseStream(); + while (await responseStream.MoveNextAsync()) + { + SanitizeUserPromptResponse responseItem = responseStream.Current; + // Do something with streamed response + } + // The response stream has completed + }); + + // Send requests to the server + bool done = false; + while (!done) + { + // Initialize a request + SanitizeUserPromptRequest request = new SanitizeUserPromptRequest + { + TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), + UserPromptData = new DataItem(), + MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, + }; + // Stream a request to the server + await response.WriteAsync(request); + // Set "done" to true when sending requests is complete + } + + // Complete writing requests to the stream + await response.WriteCompleteAsync(); + // Await the response handler + // This will complete once all server responses have been processed + await responseHandlerTask; + } + } + // [END modelarmor_v1_generated_ModelArmor_StreamSanitizeUserPrompt_sync] +} diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/snippet_metadata_google.cloud.modelarmor.v1.json b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/snippet_metadata_google.cloud.modelarmor.v1.json index d7bd3c8ed4f7..8326bae94205 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/snippet_metadata_google.cloud.modelarmor.v1.json +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.GeneratedSnippets/snippet_metadata_google.cloud.modelarmor.v1.json @@ -1944,12 +1944,12 @@ "segments": [ { "start": 20, - "end": 46, + "end": 47, "type": "FULL" }, { "start": 34, - "end": 44, + "end": 45, "type": "SHORT" } ] @@ -1993,12 +1993,12 @@ "segments": [ { "start": 20, - "end": 47, + "end": 48, "type": "FULL" }, { "start": 35, - "end": 45, + "end": 46, "type": "SHORT" } ] @@ -2041,12 +2041,12 @@ "segments": [ { "start": 20, - "end": 47, + "end": 48, "type": "FULL" }, { "start": 34, - "end": 45, + "end": 46, "type": "SHORT" } ] @@ -2090,12 +2090,108 @@ "segments": [ { "start": 20, - "end": 48, + "end": 49, "type": "FULL" }, { "start": 35, - "end": 46, + "end": 47, + "type": "SHORT" + } + ] + }, + { + "regionTag": "modelarmor_v1_generated_ModelArmor_StreamSanitizeUserPrompt_sync", + "title": "StreamSanitizeUserPrompt", + "description": "Snippet for StreamSanitizeUserPrompt", + "file": "ModelArmorClient.StreamSanitizeUserPromptSnippet.g.cs", + "language": "C_SHARP", + "clientMethod": { + "shortName": "StreamSanitizeUserPrompt", + "fullName": "Google.Cloud.ModelArmor.V1.ModelArmorClient.StreamSanitizeUserPrompt", + "parameters": [ + { + "type": "Google.Api.Gax.Grpc.CallSettings", + "name": "callSettings" + }, + { + "type": "Google.Api.Gax.Grpc.BidirectionalStreamingSettings", + "name": "streamingSettings" + } + ], + "resultType": "Google.Cloud.ModelArmor.V1.ModelArmorClient+StreamSanitizeUserPromptStream", + "client": { + "shortName": "ModelArmorClient", + "fullName": "Google.Cloud.ModelArmor.V1.ModelArmorClient" + }, + "method": { + "shortName": "StreamSanitizeUserPrompt", + "fullName": "google.cloud.modelarmor.v1.ModelArmor.StreamSanitizeUserPrompt", + "service": { + "shortName": "ModelArmor", + "fullName": "google.cloud.modelarmor.v1.ModelArmor" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 80, + "type": "FULL" + }, + { + "start": 36, + "end": 78, + "type": "SHORT" + } + ] + }, + { + "regionTag": "modelarmor_v1_generated_ModelArmor_StreamSanitizeModelResponse_sync", + "title": "StreamSanitizeModelResponse", + "description": "Snippet for StreamSanitizeModelResponse", + "file": "ModelArmorClient.StreamSanitizeModelResponseSnippet.g.cs", + "language": "C_SHARP", + "clientMethod": { + "shortName": "StreamSanitizeModelResponse", + "fullName": "Google.Cloud.ModelArmor.V1.ModelArmorClient.StreamSanitizeModelResponse", + "parameters": [ + { + "type": "Google.Api.Gax.Grpc.CallSettings", + "name": "callSettings" + }, + { + "type": "Google.Api.Gax.Grpc.BidirectionalStreamingSettings", + "name": "streamingSettings" + } + ], + "resultType": "Google.Cloud.ModelArmor.V1.ModelArmorClient+StreamSanitizeModelResponseStream", + "client": { + "shortName": "ModelArmorClient", + "fullName": "Google.Cloud.ModelArmor.V1.ModelArmorClient" + }, + "method": { + "shortName": "StreamSanitizeModelResponse", + "fullName": "google.cloud.modelarmor.v1.ModelArmor.StreamSanitizeModelResponse", + "service": { + "shortName": "ModelArmor", + "fullName": "google.cloud.modelarmor.v1.ModelArmor" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 81, + "type": "FULL" + }, + { + "start": 36, + "end": 79, "type": "SHORT" } ] diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.Snippets/ModelArmorClientSnippets.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.Snippets/ModelArmorClientSnippets.g.cs index 645feb74855a..fb420fb10616 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.Snippets/ModelArmorClientSnippets.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1.Snippets/ModelArmorClientSnippets.g.cs @@ -17,6 +17,7 @@ namespace GoogleCSharpSnippets { using Google.Api.Gax; + using Google.Api.Gax.Grpc; using Google.Api.Gax.ResourceNames; using Google.Cloud.ModelArmor.V1; using Google.Protobuf.WellKnownTypes; @@ -812,6 +813,7 @@ public void SanitizeUserPromptRequestObject() TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), UserPromptData = new DataItem(), MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeUserPromptResponse response = modelArmorClient.SanitizeUserPrompt(request); @@ -831,6 +833,7 @@ public async Task SanitizeUserPromptRequestObjectAsync() TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), UserPromptData = new DataItem(), MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeUserPromptResponse response = await modelArmorClient.SanitizeUserPromptAsync(request); @@ -850,6 +853,7 @@ public void SanitizeModelResponseRequestObject() ModelResponseData = new DataItem(), UserPrompt = "", MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeModelResponseResponse response = modelArmorClient.SanitizeModelResponse(request); @@ -870,10 +874,112 @@ public async Task SanitizeModelResponseRequestObjectAsync() ModelResponseData = new DataItem(), UserPrompt = "", MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, }; // Make the request SanitizeModelResponseResponse response = await modelArmorClient.SanitizeModelResponseAsync(request); // End snippet } + + /// Snippet for StreamSanitizeUserPrompt + public async Task StreamSanitizeUserPrompt() + { + // Snippet: StreamSanitizeUserPrompt(CallSettings, BidirectionalStreamingSettings) + // Create client + ModelArmorClient modelArmorClient = ModelArmorClient.Create(); + // Initialize streaming call, retrieving the stream object + using ModelArmorClient.StreamSanitizeUserPromptStream response = modelArmorClient.StreamSanitizeUserPrompt(); + + // Sending requests and retrieving responses can be arbitrarily interleaved + // Exact sequence will depend on client/server behavior + + // Create task to do something with responses from server + Task responseHandlerTask = Task.Run(async () => + { + // Note that C# 8 code can use await foreach + AsyncResponseStream responseStream = response.GetResponseStream(); + while (await responseStream.MoveNextAsync()) + { + SanitizeUserPromptResponse responseItem = responseStream.Current; + // Do something with streamed response + } + // The response stream has completed + }); + + // Send requests to the server + bool done = false; + while (!done) + { + // Initialize a request + SanitizeUserPromptRequest request = new SanitizeUserPromptRequest + { + TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), + UserPromptData = new DataItem(), + MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, + }; + // Stream a request to the server + await response.WriteAsync(request); + // Set "done" to true when sending requests is complete + } + + // Complete writing requests to the stream + await response.WriteCompleteAsync(); + // Await the response handler + // This will complete once all server responses have been processed + await responseHandlerTask; + // End snippet + } + + /// Snippet for StreamSanitizeModelResponse + public async Task StreamSanitizeModelResponse() + { + // Snippet: StreamSanitizeModelResponse(CallSettings, BidirectionalStreamingSettings) + // Create client + ModelArmorClient modelArmorClient = ModelArmorClient.Create(); + // Initialize streaming call, retrieving the stream object + using ModelArmorClient.StreamSanitizeModelResponseStream response = modelArmorClient.StreamSanitizeModelResponse(); + + // Sending requests and retrieving responses can be arbitrarily interleaved + // Exact sequence will depend on client/server behavior + + // Create task to do something with responses from server + Task responseHandlerTask = Task.Run(async () => + { + // Note that C# 8 code can use await foreach + AsyncResponseStream responseStream = response.GetResponseStream(); + while (await responseStream.MoveNextAsync()) + { + SanitizeModelResponseResponse responseItem = responseStream.Current; + // Do something with streamed response + } + // The response stream has completed + }); + + // Send requests to the server + bool done = false; + while (!done) + { + // Initialize a request + SanitizeModelResponseRequest request = new SanitizeModelResponseRequest + { + TemplateName = TemplateName.FromProjectLocationTemplate("[PROJECT]", "[LOCATION]", "[TEMPLATE]"), + ModelResponseData = new DataItem(), + UserPrompt = "", + MultiLanguageDetectionMetadata = new MultiLanguageDetectionMetadata(), + StreamingMode = StreamingMode.Unspecified, + }; + // Stream a request to the server + await response.WriteAsync(request); + // Set "done" to true when sending requests is complete + } + + // Complete writing requests to the stream + await response.WriteCompleteAsync(); + // Await the response handler + // This will complete once all server responses have been processed + await responseHandlerTask; + // End snippet + } } } diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ModelArmorClient.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ModelArmorClient.g.cs index 5f9b42447d50..583027bce82a 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ModelArmorClient.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ModelArmorClient.g.cs @@ -57,6 +57,10 @@ private ModelArmorSettings(ModelArmorSettings existing) : base(existing) UpdateFloorSettingSettings = existing.UpdateFloorSettingSettings; SanitizeUserPromptSettings = existing.SanitizeUserPromptSettings; SanitizeModelResponseSettings = existing.SanitizeModelResponseSettings; + StreamSanitizeUserPromptSettings = existing.StreamSanitizeUserPromptSettings; + StreamSanitizeUserPromptStreamingSettings = existing.StreamSanitizeUserPromptStreamingSettings; + StreamSanitizeModelResponseSettings = existing.StreamSanitizeModelResponseSettings; + StreamSanitizeModelResponseStreamingSettings = existing.StreamSanitizeModelResponseStreamingSettings; LocationsSettings = existing.LocationsSettings; OnCopy(existing); } @@ -201,6 +205,46 @@ private ModelArmorSettings(ModelArmorSettings existing) : base(existing) /// public gaxgrpc::CallSettings SanitizeModelResponseSettings { get; set; } = gaxgrpc::CallSettingsExtensions.WithRetry(gaxgrpc::CallSettings.FromExpiration(gax::Expiration.FromTimeout(sys::TimeSpan.FromMilliseconds(60000))), gaxgrpc::RetrySettings.FromExponentialBackoff(maxAttempts: 5, initialBackoff: sys::TimeSpan.FromMilliseconds(1000), maxBackoff: sys::TimeSpan.FromMilliseconds(10000), backoffMultiplier: 1.3, retryFilter: gaxgrpc::RetrySettings.FilterForStatusCodes(grpccore::StatusCode.Unavailable))); + /// + /// for synchronous and asynchronous calls to + /// ModelArmorClient.StreamSanitizeUserPrompt and ModelArmorClient.StreamSanitizeUserPromptAsync. + /// + /// + /// + /// This call will not be retried. + /// No timeout is applied. + /// + /// + public gaxgrpc::CallSettings StreamSanitizeUserPromptSettings { get; set; } = gaxgrpc::CallSettings.FromExpiration(gax::Expiration.None); + + /// + /// for calls to + /// ModelArmorClient.StreamSanitizeUserPrompt and ModelArmorClient.StreamSanitizeUserPromptAsync. + /// + /// The default local send queue size is 100. + public gaxgrpc::BidirectionalStreamingSettings StreamSanitizeUserPromptStreamingSettings { get; set; } = new gaxgrpc::BidirectionalStreamingSettings(100); + + /// + /// for synchronous and asynchronous calls to + /// ModelArmorClient.StreamSanitizeModelResponse and ModelArmorClient.StreamSanitizeModelResponseAsync + /// . + /// + /// + /// + /// This call will not be retried. + /// No timeout is applied. + /// + /// + public gaxgrpc::CallSettings StreamSanitizeModelResponseSettings { get; set; } = gaxgrpc::CallSettings.FromExpiration(gax::Expiration.None); + + /// + /// for calls to + /// ModelArmorClient.StreamSanitizeModelResponse and ModelArmorClient.StreamSanitizeModelResponseAsync + /// . + /// + /// The default local send queue size is 100. + public gaxgrpc::BidirectionalStreamingSettings StreamSanitizeModelResponseStreamingSettings { get; set; } = new gaxgrpc::BidirectionalStreamingSettings(100); + /// /// The settings to use for the associated with the client. /// @@ -1212,6 +1256,40 @@ public virtual SanitizeModelResponseResponse SanitizeModelResponse(SanitizeModel /// A Task containing the RPC response. public virtual stt::Task SanitizeModelResponseAsync(SanitizeModelResponseRequest request, st::CancellationToken cancellationToken) => SanitizeModelResponseAsync(request, gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); + + /// + /// Bidirectional streaming methods for + /// . + /// + public abstract partial class StreamSanitizeUserPromptStream : gaxgrpc::BidirectionalStreamingBase + { + } + + /// + /// Streaming version of Sanitize User Prompt. + /// + /// If not null, applies overrides to this RPC call. + /// If not null, applies streaming overrides to this RPC call. + /// The client-server stream. + public virtual StreamSanitizeUserPromptStream StreamSanitizeUserPrompt(gaxgrpc::CallSettings callSettings = null, gaxgrpc::BidirectionalStreamingSettings streamingSettings = null) => + throw new sys::NotImplementedException(); + + /// + /// Bidirectional streaming methods for + /// . + /// + public abstract partial class StreamSanitizeModelResponseStream : gaxgrpc::BidirectionalStreamingBase + { + } + + /// + /// Streaming version of Sanitizes Model Response. + /// + /// If not null, applies overrides to this RPC call. + /// If not null, applies streaming overrides to this RPC call. + /// The client-server stream. + public virtual StreamSanitizeModelResponseStream StreamSanitizeModelResponse(gaxgrpc::CallSettings callSettings = null, gaxgrpc::BidirectionalStreamingSettings streamingSettings = null) => + throw new sys::NotImplementedException(); } /// ModelArmor client wrapper implementation, for convenient use. @@ -1238,6 +1316,10 @@ public sealed partial class ModelArmorClientImpl : ModelArmorClient private readonly gaxgrpc::ApiCall _callSanitizeModelResponse; + private readonly gaxgrpc::ApiBidirectionalStreamingCall _callStreamSanitizeUserPrompt; + + private readonly gaxgrpc::ApiBidirectionalStreamingCall _callStreamSanitizeModelResponse; + /// /// Constructs a client wrapper for the ModelArmor service, with the specified gRPC client and settings. /// @@ -1281,11 +1363,19 @@ public ModelArmorClientImpl(ModelArmor.ModelArmorClient grpcClient, ModelArmorSe _callSanitizeModelResponse = clientHelper.BuildApiCall("SanitizeModelResponse", grpcClient.SanitizeModelResponseAsync, grpcClient.SanitizeModelResponse, effectiveSettings.SanitizeModelResponseSettings).WithGoogleRequestParam("name", request => request.Name); Modify_ApiCall(ref _callSanitizeModelResponse); Modify_SanitizeModelResponseApiCall(ref _callSanitizeModelResponse); + _callStreamSanitizeUserPrompt = clientHelper.BuildApiCall("StreamSanitizeUserPrompt", grpcClient.StreamSanitizeUserPrompt, effectiveSettings.StreamSanitizeUserPromptSettings, effectiveSettings.StreamSanitizeUserPromptStreamingSettings); + Modify_ApiCall(ref _callStreamSanitizeUserPrompt); + Modify_StreamSanitizeUserPromptApiCall(ref _callStreamSanitizeUserPrompt); + _callStreamSanitizeModelResponse = clientHelper.BuildApiCall("StreamSanitizeModelResponse", grpcClient.StreamSanitizeModelResponse, effectiveSettings.StreamSanitizeModelResponseSettings, effectiveSettings.StreamSanitizeModelResponseStreamingSettings); + Modify_ApiCall(ref _callStreamSanitizeModelResponse); + Modify_StreamSanitizeModelResponseApiCall(ref _callStreamSanitizeModelResponse); OnConstruction(grpcClient, effectiveSettings, clientHelper); } partial void Modify_ApiCall(ref gaxgrpc::ApiCall call) where TRequest : class, proto::IMessage where TResponse : class, proto::IMessage; + partial void Modify_ApiCall(ref gaxgrpc::ApiBidirectionalStreamingCall call) where TRequest : class, proto::IMessage where TResponse : class, proto::IMessage; + partial void Modify_ListTemplatesApiCall(ref gaxgrpc::ApiCall call); partial void Modify_GetTemplateApiCall(ref gaxgrpc::ApiCall call); @@ -1304,6 +1394,10 @@ public ModelArmorClientImpl(ModelArmor.ModelArmorClient grpcClient, ModelArmorSe partial void Modify_SanitizeModelResponseApiCall(ref gaxgrpc::ApiCall call); + partial void Modify_StreamSanitizeUserPromptApiCall(ref gaxgrpc::ApiBidirectionalStreamingCall call); + + partial void Modify_StreamSanitizeModelResponseApiCall(ref gaxgrpc::ApiBidirectionalStreamingCall call); + partial void OnConstruction(ModelArmor.ModelArmorClient grpcClient, ModelArmorSettings effectiveSettings, gaxgrpc::ClientHelper clientHelper); /// The underlying gRPC ModelArmor client @@ -1330,6 +1424,14 @@ public ModelArmorClientImpl(ModelArmor.ModelArmorClient grpcClient, ModelArmorSe partial void Modify_SanitizeModelResponseRequest(ref SanitizeModelResponseRequest request, ref gaxgrpc::CallSettings settings); + partial void Modify_SanitizeUserPromptRequestCallSettings(ref gaxgrpc::CallSettings settings); + + partial void Modify_SanitizeUserPromptRequestRequest(ref SanitizeUserPromptRequest request); + + partial void Modify_SanitizeModelResponseRequestCallSettings(ref gaxgrpc::CallSettings settings); + + partial void Modify_SanitizeModelResponseRequestRequest(ref SanitizeModelResponseRequest request); + /// /// Lists Templates in a given project and location. /// @@ -1545,6 +1647,126 @@ public override SanitizeModelResponseResponse SanitizeModelResponse(SanitizeMode Modify_SanitizeModelResponseRequest(ref request, ref callSettings); return _callSanitizeModelResponse.Async(request, callSettings); } + + internal sealed partial class StreamSanitizeUserPromptStreamImpl : StreamSanitizeUserPromptStream + { + /// Construct the bidirectional streaming method for StreamSanitizeUserPrompt. + /// The service containing this streaming method. + /// The underlying gRPC duplex streaming call. + /// + /// The instance associated + /// with this streaming call. + /// + public StreamSanitizeUserPromptStreamImpl(ModelArmorClientImpl service, grpccore::AsyncDuplexStreamingCall call, gaxgrpc::BufferedClientStreamWriter writeBuffer) + { + _service = service; + GrpcCall = call; + _writeBuffer = writeBuffer; + } + + private ModelArmorClientImpl _service; + + private gaxgrpc::BufferedClientStreamWriter _writeBuffer; + + public override grpccore::AsyncDuplexStreamingCall GrpcCall { get; } + + private SanitizeUserPromptRequest ModifyRequest(SanitizeUserPromptRequest request) + { + _service.Modify_SanitizeUserPromptRequestRequest(ref request); + return request; + } + + public override stt::Task TryWriteAsync(SanitizeUserPromptRequest message) => + _writeBuffer.TryWriteAsync(ModifyRequest(message)); + + public override stt::Task WriteAsync(SanitizeUserPromptRequest message) => + _writeBuffer.WriteAsync(ModifyRequest(message)); + + public override stt::Task TryWriteAsync(SanitizeUserPromptRequest message, grpccore::WriteOptions options) => + _writeBuffer.TryWriteAsync(ModifyRequest(message), options); + + public override stt::Task WriteAsync(SanitizeUserPromptRequest message, grpccore::WriteOptions options) => + _writeBuffer.WriteAsync(ModifyRequest(message), options); + + public override stt::Task TryWriteCompleteAsync() => _writeBuffer.TryWriteCompleteAsync(); + + public override stt::Task WriteCompleteAsync() => _writeBuffer.WriteCompleteAsync(); + } + + /// + /// Streaming version of Sanitize User Prompt. + /// + /// If not null, applies overrides to this RPC call. + /// If not null, applies streaming overrides to this RPC call. + /// The client-server stream. + public override ModelArmorClient.StreamSanitizeUserPromptStream StreamSanitizeUserPrompt(gaxgrpc::CallSettings callSettings = null, gaxgrpc::BidirectionalStreamingSettings streamingSettings = null) + { + Modify_SanitizeUserPromptRequestCallSettings(ref callSettings); + gaxgrpc::BidirectionalStreamingSettings effectiveStreamingSettings = streamingSettings ?? _callStreamSanitizeUserPrompt.StreamingSettings; + grpccore::AsyncDuplexStreamingCall call = _callStreamSanitizeUserPrompt.Call(callSettings); + gaxgrpc::BufferedClientStreamWriter writeBuffer = new gaxgrpc::BufferedClientStreamWriter(call.RequestStream, effectiveStreamingSettings.BufferedClientWriterCapacity); + return new StreamSanitizeUserPromptStreamImpl(this, call, writeBuffer); + } + + internal sealed partial class StreamSanitizeModelResponseStreamImpl : StreamSanitizeModelResponseStream + { + /// Construct the bidirectional streaming method for StreamSanitizeModelResponse. + /// The service containing this streaming method. + /// The underlying gRPC duplex streaming call. + /// + /// The instance associated + /// with this streaming call. + /// + public StreamSanitizeModelResponseStreamImpl(ModelArmorClientImpl service, grpccore::AsyncDuplexStreamingCall call, gaxgrpc::BufferedClientStreamWriter writeBuffer) + { + _service = service; + GrpcCall = call; + _writeBuffer = writeBuffer; + } + + private ModelArmorClientImpl _service; + + private gaxgrpc::BufferedClientStreamWriter _writeBuffer; + + public override grpccore::AsyncDuplexStreamingCall GrpcCall { get; } + + private SanitizeModelResponseRequest ModifyRequest(SanitizeModelResponseRequest request) + { + _service.Modify_SanitizeModelResponseRequestRequest(ref request); + return request; + } + + public override stt::Task TryWriteAsync(SanitizeModelResponseRequest message) => + _writeBuffer.TryWriteAsync(ModifyRequest(message)); + + public override stt::Task WriteAsync(SanitizeModelResponseRequest message) => + _writeBuffer.WriteAsync(ModifyRequest(message)); + + public override stt::Task TryWriteAsync(SanitizeModelResponseRequest message, grpccore::WriteOptions options) => + _writeBuffer.TryWriteAsync(ModifyRequest(message), options); + + public override stt::Task WriteAsync(SanitizeModelResponseRequest message, grpccore::WriteOptions options) => + _writeBuffer.WriteAsync(ModifyRequest(message), options); + + public override stt::Task TryWriteCompleteAsync() => _writeBuffer.TryWriteCompleteAsync(); + + public override stt::Task WriteCompleteAsync() => _writeBuffer.WriteCompleteAsync(); + } + + /// + /// Streaming version of Sanitizes Model Response. + /// + /// If not null, applies overrides to this RPC call. + /// If not null, applies streaming overrides to this RPC call. + /// The client-server stream. + public override ModelArmorClient.StreamSanitizeModelResponseStream StreamSanitizeModelResponse(gaxgrpc::CallSettings callSettings = null, gaxgrpc::BidirectionalStreamingSettings streamingSettings = null) + { + Modify_SanitizeModelResponseRequestCallSettings(ref callSettings); + gaxgrpc::BidirectionalStreamingSettings effectiveStreamingSettings = streamingSettings ?? _callStreamSanitizeModelResponse.StreamingSettings; + grpccore::AsyncDuplexStreamingCall call = _callStreamSanitizeModelResponse.Call(callSettings); + gaxgrpc::BufferedClientStreamWriter writeBuffer = new gaxgrpc::BufferedClientStreamWriter(call.RequestStream, effectiveStreamingSettings.BufferedClientWriterCapacity); + return new StreamSanitizeModelResponseStreamImpl(this, call, writeBuffer); + } } public partial class ListTemplatesRequest : gaxgrpc::IPageRequest diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/Service.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/Service.g.cs index d2085519d747..5fb96cd5e320 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/Service.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/Service.g.cs @@ -30,341 +30,356 @@ static ServiceReflection() { "cGkvZmllbGRfYmVoYXZpb3IucHJvdG8aG2dvb2dsZS9hcGkvZmllbGRfaW5m", "by5wcm90bxoZZ29vZ2xlL2FwaS9yZXNvdXJjZS5wcm90bxobZ29vZ2xlL3By", "b3RvYnVmL2VtcHR5LnByb3RvGiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFz", - "ay5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byL1CQoI", - "VGVtcGxhdGUSEQoEbmFtZRgBIAEoCUID4EEIEjQKC2NyZWF0ZV90aW1lGAIg", - "ASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjQKC3VwZGF0", - "ZV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EED", - "EkUKBmxhYmVscxgEIAMoCzIwLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYx", - "LlRlbXBsYXRlLkxhYmVsc0VudHJ5QgPgQQESRAoNZmlsdGVyX2NvbmZpZxgF", - "IAEoCzIoLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZpbHRlckNvbmZp", - "Z0ID4EECElUKEXRlbXBsYXRlX21ldGFkYXRhGAYgASgLMjUuZ29vZ2xlLmNs", - "b3VkLm1vZGVsYXJtb3IudjEuVGVtcGxhdGUuVGVtcGxhdGVNZXRhZGF0YUID", - "4EEBGtoFChBUZW1wbGF0ZU1ldGFkYXRhEi8KImlnbm9yZV9wYXJ0aWFsX2lu", - "dm9jYXRpb25fZmFpbHVyZXMYASABKAhCA+BBARIsCh9jdXN0b21fcHJvbXB0", - "X3NhZmV0eV9lcnJvcl9jb2RlGAIgASgFQgPgQQESLwoiY3VzdG9tX3Byb21w", - "dF9zYWZldHlfZXJyb3JfbWVzc2FnZRgDIAEoCUID4EEBEjIKJWN1c3RvbV9s", - "bG1fcmVzcG9uc2Vfc2FmZXR5X2Vycm9yX2NvZGUYBCABKAVCA+BBARI1Cihj", - "dXN0b21fbGxtX3Jlc3BvbnNlX3NhZmV0eV9lcnJvcl9tZXNzYWdlGAUgASgJ", - "QgPgQQESJAoXbG9nX3RlbXBsYXRlX29wZXJhdGlvbnMYBiABKAhCA+BBARIk", - "Chdsb2dfc2FuaXRpemVfb3BlcmF0aW9ucxgHIAEoCEID4EEBEmQKEGVuZm9y", - "Y2VtZW50X3R5cGUYCCABKA4yRS5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52", - "MS5UZW1wbGF0ZS5UZW1wbGF0ZU1ldGFkYXRhLkVuZm9yY2VtZW50VHlwZUID", - "4EEBEnMKGG11bHRpX2xhbmd1YWdlX2RldGVjdGlvbhgJIAEoCzJMLmdvb2ds", - "ZS5jbG91ZC5tb2RlbGFybW9yLnYxLlRlbXBsYXRlLlRlbXBsYXRlTWV0YWRh", - "dGEuTXVsdGlMYW5ndWFnZURldGVjdGlvbkID4EEBGkYKFk11bHRpTGFuZ3Vh", - "Z2VEZXRlY3Rpb24SLAofZW5hYmxlX211bHRpX2xhbmd1YWdlX2RldGVjdGlv", - "bhgBIAEoCEID4EECIlwKD0VuZm9yY2VtZW50VHlwZRIgChxFTkZPUkNFTUVO", - "VF9UWVBFX1VOU1BFQ0lGSUVEEAASEAoMSU5TUEVDVF9PTkxZEAESFQoRSU5T", - "UEVDVF9BTkRfQkxPQ0sQAhotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkS", - "DQoFdmFsdWUYAiABKAk6AjgBOnrqQXcKIm1vZGVsYXJtb3IuZ29vZ2xlYXBp", - "cy5jb20vVGVtcGxhdGUSPHByb2plY3RzL3twcm9qZWN0fS9sb2NhdGlvbnMv", - "e2xvY2F0aW9ufS90ZW1wbGF0ZXMve3RlbXBsYXRlfSoJdGVtcGxhdGVzMgh0", - "ZW1wbGF0ZSKLCQoMRmxvb3JTZXR0aW5nEhEKBG5hbWUYASABKAlCA+BBCBI0", - "CgtjcmVhdGVfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3Rh", - "bXBCA+BBAxI0Cgt1cGRhdGVfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1", - "Zi5UaW1lc3RhbXBCA+BBAxJECg1maWx0ZXJfY29uZmlnGAQgASgLMiguZ29v", - "Z2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyQ29uZmlnQgPgQQISMgog", - "ZW5hYmxlX2Zsb29yX3NldHRpbmdfZW5mb3JjZW1lbnQYBSABKAhCA+BBAUgA", - "iAEBElwKE2ludGVncmF0ZWRfc2VydmljZXMYBiADKA4yOi5nb29nbGUuY2xv", - "dWQubW9kZWxhcm1vci52MS5GbG9vclNldHRpbmcuSW50ZWdyYXRlZFNlcnZp", - "Y2VCA+BBARJfChlhaV9wbGF0Zm9ybV9mbG9vcl9zZXR0aW5nGAcgASgLMjIu", - "Z29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuQWlQbGF0Zm9ybUZsb29yU2V0", - "dGluZ0ID4EEBSAGIAQESYgoWZmxvb3Jfc2V0dGluZ19tZXRhZGF0YRgIIAEo", - "CzI9Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZsb29yU2V0dGluZy5G", - "bG9vclNldHRpbmdNZXRhZGF0YUID4EEBGtsBChRGbG9vclNldHRpbmdNZXRh", - "ZGF0YRJ7ChhtdWx0aV9sYW5ndWFnZV9kZXRlY3Rpb24YASABKAsyVC5nb29n", - "bGUuY2xvdWQubW9kZWxhcm1vci52MS5GbG9vclNldHRpbmcuRmxvb3JTZXR0", - "aW5nTWV0YWRhdGEuTXVsdGlMYW5ndWFnZURldGVjdGlvbkID4EEBGkYKFk11", - "bHRpTGFuZ3VhZ2VEZXRlY3Rpb24SLAofZW5hYmxlX211bHRpX2xhbmd1YWdl", - "X2RldGVjdGlvbhgBIAEoCEID4EECIkgKEUludGVncmF0ZWRTZXJ2aWNlEiIK", - "HklOVEVHUkFURURfU0VSVklDRV9VTlNQRUNJRklFRBAAEg8KC0FJX1BMQVRG", - "T1JNEAE68wHqQe8BCiZtb2RlbGFybW9yLmdvb2dsZWFwaXMuY29tL0Zsb29y", - "U2V0dGluZxI0cHJvamVjdHMve3Byb2plY3R9L2xvY2F0aW9ucy97bG9jYXRp", - "b259L2Zsb29yU2V0dGluZxIyZm9sZGVycy97Zm9sZGVyfS9sb2NhdGlvbnMv", - "e2xvY2F0aW9ufS9mbG9vclNldHRpbmcSPm9yZ2FuaXphdGlvbnMve29yZ2Fu", - "aXphdGlvbn0vbG9jYXRpb25zL3tsb2NhdGlvbn0vZmxvb3JTZXR0aW5nKg1m", - "bG9vclNldHRpbmdzMgxmbG9vclNldHRpbmdCIwohX2VuYWJsZV9mbG9vcl9z", - "ZXR0aW5nX2VuZm9yY2VtZW50QhwKGl9haV9wbGF0Zm9ybV9mbG9vcl9zZXR0", - "aW5nIo4BChZBaVBsYXRmb3JtRmxvb3JTZXR0aW5nEhsKDGluc3BlY3Rfb25s", - "eRgBIAEoCEID4EEBSAASIAoRaW5zcGVjdF9hbmRfYmxvY2sYAiABKAhCA+BB", - "AUgAEiEKFGVuYWJsZV9jbG91ZF9sb2dnaW5nGAMgASgIQgPgQQFCEgoQZW5m", - "b3JjZW1lbnRfdHlwZSKvAQoUTGlzdFRlbXBsYXRlc1JlcXVlc3QSOgoGcGFy", - "ZW50GAEgASgJQirgQQL6QSQSIm1vZGVsYXJtb3IuZ29vZ2xlYXBpcy5jb20v", - "VGVtcGxhdGUSFgoJcGFnZV9zaXplGAIgASgFQgPgQQESFwoKcGFnZV90b2tl", - "bhgDIAEoCUID4EEBEhMKBmZpbHRlchgEIAEoCUID4EEBEhUKCG9yZGVyX2J5", - "GAUgASgJQgPgQQEifgoVTGlzdFRlbXBsYXRlc1Jlc3BvbnNlEjcKCXRlbXBs", - "YXRlcxgBIAMoCzIkLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlRlbXBs", - "YXRlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt1bnJlYWNoYWJsZRgD", - "IAMoCSJOChJHZXRUZW1wbGF0ZVJlcXVlc3QSOAoEbmFtZRgBIAEoCUIq4EEC", - "+kEkCiJtb2RlbGFybW9yLmdvb2dsZWFwaXMuY29tL1RlbXBsYXRlIssBChVD", - "cmVhdGVUZW1wbGF0ZVJlcXVlc3QSOgoGcGFyZW50GAEgASgJQirgQQL6QSQS", - "Im1vZGVsYXJtb3IuZ29vZ2xlYXBpcy5jb20vVGVtcGxhdGUSGAoLdGVtcGxh", - "dGVfaWQYAiABKAlCA+BBAhI7Cgh0ZW1wbGF0ZRgDIAEoCzIkLmdvb2dsZS5j", - "bG91ZC5tb2RlbGFybW9yLnYxLlRlbXBsYXRlQgPgQQISHwoKcmVxdWVzdF9p", - "ZBgEIAEoCUIL4EEB4ozP1wgCCAEiqwEKFVVwZGF0ZVRlbXBsYXRlUmVxdWVz", - "dBI0Cgt1cGRhdGVfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVs", - "ZE1hc2tCA+BBAhI7Cgh0ZW1wbGF0ZRgCIAEoCzIkLmdvb2dsZS5jbG91ZC5t", - "b2RlbGFybW9yLnYxLlRlbXBsYXRlQgPgQQISHwoKcmVxdWVzdF9pZBgDIAEo", - "CUIL4EEB4ozP1wgCCAEicgoVRGVsZXRlVGVtcGxhdGVSZXF1ZXN0EjgKBG5h", - "bWUYASABKAlCKuBBAvpBJAoibW9kZWxhcm1vci5nb29nbGVhcGlzLmNvbS9U", - "ZW1wbGF0ZRIfCgpyZXF1ZXN0X2lkGAIgASgJQgvgQQHijM/XCAIIASJWChZH", - "ZXRGbG9vclNldHRpbmdSZXF1ZXN0EjwKBG5hbWUYASABKAlCLuBBAvpBKAom", - "bW9kZWxhcm1vci5nb29nbGVhcGlzLmNvbS9GbG9vclNldHRpbmcilwEKGVVw", - "ZGF0ZUZsb29yU2V0dGluZ1JlcXVlc3QSRAoNZmxvb3Jfc2V0dGluZxgBIAEo", - "CzIoLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZsb29yU2V0dGluZ0ID", - "4EECEjQKC3VwZGF0ZV9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZp", - "ZWxkTWFza0ID4EEBIu8CCgxGaWx0ZXJDb25maWcSSAoMcmFpX3NldHRpbmdz", - "GAEgASgLMi0uZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuUmFpRmlsdGVy", - "U2V0dGluZ3NCA+BBARJICgxzZHBfc2V0dGluZ3MYAiABKAsyLS5nb29nbGUu", - "Y2xvdWQubW9kZWxhcm1vci52MS5TZHBGaWx0ZXJTZXR0aW5nc0ID4EEBEmcK", - "IHBpX2FuZF9qYWlsYnJlYWtfZmlsdGVyX3NldHRpbmdzGAMgASgLMjguZ29v", - "Z2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuUGlBbmRKYWlsYnJlYWtGaWx0ZXJT", - "ZXR0aW5nc0ID4EEBEmIKHW1hbGljaW91c191cmlfZmlsdGVyX3NldHRpbmdz", - "GAQgASgLMjYuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuTWFsaWNpb3Vz", - "VXJpRmlsdGVyU2V0dGluZ3NCA+BBASLhAgocUGlBbmRKYWlsYnJlYWtGaWx0", - "ZXJTZXR0aW5ncxJ5ChJmaWx0ZXJfZW5mb3JjZW1lbnQYASABKA4yWC5nb29n", - "bGUuY2xvdWQubW9kZWxhcm1vci52MS5QaUFuZEphaWxicmVha0ZpbHRlclNl", - "dHRpbmdzLlBpQW5kSmFpbGJyZWFrRmlsdGVyRW5mb3JjZW1lbnRCA+BBARJT", - "ChBjb25maWRlbmNlX2xldmVsGAMgASgOMjQuZ29vZ2xlLmNsb3VkLm1vZGVs", - "YXJtb3IudjEuRGV0ZWN0aW9uQ29uZmlkZW5jZUxldmVsQgPgQQEicQofUGlB", - "bmRKYWlsYnJlYWtGaWx0ZXJFbmZvcmNlbWVudBIzCi9QSV9BTkRfSkFJTEJS", - "RUFLX0ZJTFRFUl9FTkZPUkNFTUVOVF9VTlNQRUNJRklFRBAAEgsKB0VOQUJM", - "RUQQARIMCghESVNBQkxFRBACIoECChpNYWxpY2lvdXNVcmlGaWx0ZXJTZXR0", - "aW5ncxJ1ChJmaWx0ZXJfZW5mb3JjZW1lbnQYASABKA4yVC5nb29nbGUuY2xv", - "dWQubW9kZWxhcm1vci52MS5NYWxpY2lvdXNVcmlGaWx0ZXJTZXR0aW5ncy5N", - "YWxpY2lvdXNVcmlGaWx0ZXJFbmZvcmNlbWVudEID4EEBImwKHU1hbGljaW91", - "c1VyaUZpbHRlckVuZm9yY2VtZW50EjAKLE1BTElDSU9VU19VUklfRklMVEVS", - "X0VORk9SQ0VNRU5UX1VOU1BFQ0lGSUVEEAASCwoHRU5BQkxFRBABEgwKCERJ", - "U0FCTEVEEAIijgIKEVJhaUZpbHRlclNldHRpbmdzElEKC3JhaV9maWx0ZXJz", - "GAEgAygLMjcuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuUmFpRmlsdGVy", - "U2V0dGluZ3MuUmFpRmlsdGVyQgPgQQIapQEKCVJhaUZpbHRlchJDCgtmaWx0", - "ZXJfdHlwZRgBIAEoDjIpLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlJh", - "aUZpbHRlclR5cGVCA+BBAhJTChBjb25maWRlbmNlX2xldmVsGAIgASgOMjQu", - "Z29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRGV0ZWN0aW9uQ29uZmlkZW5j", - "ZUxldmVsQgPgQQEiwAEKEVNkcEZpbHRlclNldHRpbmdzEkcKDGJhc2ljX2Nv", - "bmZpZxgBIAEoCzIqLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNkcEJh", - "c2ljQ29uZmlnQgPgQQFIABJNCg9hZHZhbmNlZF9jb25maWcYAiABKAsyLS5n", - "b29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5TZHBBZHZhbmNlZENvbmZpZ0ID", - "4EEBSABCEwoRc2RwX2NvbmZpZ3VyYXRpb24i3QEKDlNkcEJhc2ljQ29uZmln", - "EmUKEmZpbHRlcl9lbmZvcmNlbWVudBgDIAEoDjJELmdvb2dsZS5jbG91ZC5t", - "b2RlbGFybW9yLnYxLlNkcEJhc2ljQ29uZmlnLlNkcEJhc2ljQ29uZmlnRW5m", - "b3JjZW1lbnRCA+BBASJkChlTZHBCYXNpY0NvbmZpZ0VuZm9yY2VtZW50EiwK", - "KFNEUF9CQVNJQ19DT05GSUdfRU5GT1JDRU1FTlRfVU5TUEVDSUZJRUQQABIL", - "CgdFTkFCTEVEEAESDAoIRElTQUJMRUQQAiJUChFTZHBBZHZhbmNlZENvbmZp", - "ZxIdChBpbnNwZWN0X3RlbXBsYXRlGAEgASgJQgPgQQESIAoTZGVpZGVudGlm", - "eV90ZW1wbGF0ZRgCIAEoCUID4EEBIoYCChlTYW5pdGl6ZVVzZXJQcm9tcHRS", - "ZXF1ZXN0EjgKBG5hbWUYASABKAlCKuBBAvpBJAoibW9kZWxhcm1vci5nb29n", - "bGVhcGlzLmNvbS9UZW1wbGF0ZRJDChB1c2VyX3Byb21wdF9kYXRhGAIgASgL", - "MiQuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRGF0YUl0ZW1CA+BBAhJq", - "CiFtdWx0aV9sYW5ndWFnZV9kZXRlY3Rpb25fbWV0YWRhdGEYBiABKAsyOi5n", - "b29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5NdWx0aUxhbmd1YWdlRGV0ZWN0", - "aW9uTWV0YWRhdGFCA+BBASKmAgocU2FuaXRpemVNb2RlbFJlc3BvbnNlUmVx", - "dWVzdBI4CgRuYW1lGAEgASgJQirgQQL6QSQKIm1vZGVsYXJtb3IuZ29vZ2xl", - "YXBpcy5jb20vVGVtcGxhdGUSRgoTbW9kZWxfcmVzcG9uc2VfZGF0YRgCIAEo", - "CzIkLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkRhdGFJdGVtQgPgQQIS", - "GAoLdXNlcl9wcm9tcHQYBCABKAlCA+BBARJqCiFtdWx0aV9sYW5ndWFnZV9k", - "ZXRlY3Rpb25fbWV0YWRhdGEYByABKAsyOi5nb29nbGUuY2xvdWQubW9kZWxh", - "cm1vci52MS5NdWx0aUxhbmd1YWdlRGV0ZWN0aW9uTWV0YWRhdGFCA+BBASJu", - "ChpTYW5pdGl6ZVVzZXJQcm9tcHRSZXNwb25zZRJQChNzYW5pdGl6YXRpb25f", - "cmVzdWx0GAEgASgLMi4uZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuU2Fu", - "aXRpemF0aW9uUmVzdWx0QgPgQQMicQodU2FuaXRpemVNb2RlbFJlc3BvbnNl", - "UmVzcG9uc2USUAoTc2FuaXRpemF0aW9uX3Jlc3VsdBgBIAEoCzIuLmdvb2ds", - "ZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNhbml0aXphdGlvblJlc3VsdEID4EED", - "IskEChJTYW5pdGl6YXRpb25SZXN1bHQSTQoSZmlsdGVyX21hdGNoX3N0YXRl", - "GAEgASgOMiwuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyTWF0", - "Y2hTdGF0ZUID4EEDEl4KDmZpbHRlcl9yZXN1bHRzGAIgAygLMkEuZ29vZ2xl", - "LmNsb3VkLm1vZGVsYXJtb3IudjEuU2FuaXRpemF0aW9uUmVzdWx0LkZpbHRl", - "clJlc3VsdHNFbnRyeUID4EEDEkwKEWludm9jYXRpb25fcmVzdWx0GAQgASgO", - "MiwuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuSW52b2NhdGlvblJlc3Vs", - "dEID4EEDEmcKFXNhbml0aXphdGlvbl9tZXRhZGF0YRgDIAEoCzJDLmdvb2ds", - "ZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNhbml0aXphdGlvblJlc3VsdC5TYW5p", - "dGl6YXRpb25NZXRhZGF0YUID4EEDGm0KFFNhbml0aXphdGlvbk1ldGFkYXRh", - "EhIKCmVycm9yX2NvZGUYASABKAMSFQoNZXJyb3JfbWVzc2FnZRgCIAEoCRIq", - "CiJpZ25vcmVfcGFydGlhbF9pbnZvY2F0aW9uX2ZhaWx1cmVzGAMgASgIGl4K", - "EkZpbHRlclJlc3VsdHNFbnRyeRILCgNrZXkYASABKAkSNwoFdmFsdWUYAiAB", - "KAsyKC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5GaWx0ZXJSZXN1bHQ6", - "AjgBImwKHk11bHRpTGFuZ3VhZ2VEZXRlY3Rpb25NZXRhZGF0YRIcCg9zb3Vy", - "Y2VfbGFuZ3VhZ2UYASABKAlCA+BBARIsCh9lbmFibGVfbXVsdGlfbGFuZ3Vh", - "Z2VfZGV0ZWN0aW9uGAIgASgIQgPgQQEinAQKDEZpbHRlclJlc3VsdBJIChFy", - "YWlfZmlsdGVyX3Jlc3VsdBgBIAEoCzIrLmdvb2dsZS5jbG91ZC5tb2RlbGFy", - "bW9yLnYxLlJhaUZpbHRlclJlc3VsdEgAEkgKEXNkcF9maWx0ZXJfcmVzdWx0", - "GAIgASgLMisuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuU2RwRmlsdGVy", - "UmVzdWx0SAASYAoecGlfYW5kX2phaWxicmVha19maWx0ZXJfcmVzdWx0GAMg", - "ASgLMjYuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuUGlBbmRKYWlsYnJl", - "YWtGaWx0ZXJSZXN1bHRIABJbChttYWxpY2lvdXNfdXJpX2ZpbHRlcl9yZXN1", - "bHQYBCABKAsyNC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5NYWxpY2lv", - "dXNVcmlGaWx0ZXJSZXN1bHRIABJRChljc2FtX2ZpbHRlcl9maWx0ZXJfcmVz", - "dWx0GAUgASgLMiwuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuQ3NhbUZp", - "bHRlclJlc3VsdEgAElUKGHZpcnVzX3NjYW5fZmlsdGVyX3Jlc3VsdBgGIAEo", - "CzIxLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlZpcnVzU2NhbkZpbHRl", - "clJlc3VsdEgAQg8KDWZpbHRlcl9yZXN1bHQivwUKD1JhaUZpbHRlclJlc3Vs", - "dBJOCg9leGVjdXRpb25fc3RhdGUYASABKA4yMC5nb29nbGUuY2xvdWQubW9k", - "ZWxhcm1vci52MS5GaWx0ZXJFeGVjdXRpb25TdGF0ZUID4EEDEj4KDW1lc3Nh", - "Z2VfaXRlbXMYAiADKAsyJy5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5N", - "ZXNzYWdlSXRlbRJGCgttYXRjaF9zdGF0ZRgDIAEoDjIsLmdvb2dsZS5jbG91", - "ZC5tb2RlbGFybW9yLnYxLkZpbHRlck1hdGNoU3RhdGVCA+BBAxJmChdyYWlf", - "ZmlsdGVyX3R5cGVfcmVzdWx0cxgEIAMoCzJFLmdvb2dsZS5jbG91ZC5tb2Rl", - "bGFybW9yLnYxLlJhaUZpbHRlclJlc3VsdC5SYWlGaWx0ZXJUeXBlUmVzdWx0", - "c0VudHJ5Gu0BChNSYWlGaWx0ZXJUeXBlUmVzdWx0Ej4KC2ZpbHRlcl90eXBl", - "GAEgASgOMikuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuUmFpRmlsdGVy", - "VHlwZRJOChBjb25maWRlbmNlX2xldmVsGAIgASgOMjQuZ29vZ2xlLmNsb3Vk", - "Lm1vZGVsYXJtb3IudjEuRGV0ZWN0aW9uQ29uZmlkZW5jZUxldmVsEkYKC21h", - "dGNoX3N0YXRlGAMgASgOMiwuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEu", - "RmlsdGVyTWF0Y2hTdGF0ZUID4EEDGnwKGVJhaUZpbHRlclR5cGVSZXN1bHRz", - "RW50cnkSCwoDa2V5GAEgASgJEk4KBXZhbHVlGAIgASgLMj8uZ29vZ2xlLmNs", - "b3VkLm1vZGVsYXJtb3IudjEuUmFpRmlsdGVyUmVzdWx0LlJhaUZpbHRlclR5", - "cGVSZXN1bHQ6AjgBIrEBCg9TZHBGaWx0ZXJSZXN1bHQSRgoOaW5zcGVjdF9y", - "ZXN1bHQYASABKAsyLC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5TZHBJ", - "bnNwZWN0UmVzdWx0SAASTAoRZGVpZGVudGlmeV9yZXN1bHQYAiABKAsyLy5n", - "b29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5TZHBEZWlkZW50aWZ5UmVzdWx0", - "SABCCAoGcmVzdWx0IsACChBTZHBJbnNwZWN0UmVzdWx0Ek4KD2V4ZWN1dGlv", - "bl9zdGF0ZRgBIAEoDjIwLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZp", - "bHRlckV4ZWN1dGlvblN0YXRlQgPgQQMSPgoNbWVzc2FnZV9pdGVtcxgCIAMo", - "CzInLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLk1lc3NhZ2VJdGVtEkYK", - "C21hdGNoX3N0YXRlGAMgASgOMiwuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3Iu", - "djEuRmlsdGVyTWF0Y2hTdGF0ZUID4EEDEjgKCGZpbmRpbmdzGAQgAygLMiYu", - "Z29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuU2RwRmluZGluZxIaChJmaW5k", - "aW5nc190cnVuY2F0ZWQYBSABKAgiZgoIRGF0YUl0ZW0SDgoEdGV4dBgBIAEo", - "CUgAEj0KCWJ5dGVfaXRlbRgCIAEoCzIoLmdvb2dsZS5jbG91ZC5tb2RlbGFy", - "bW9yLnYxLkJ5dGVEYXRhSXRlbUgAQgsKCWRhdGFfaXRlbSKaAgoMQnl0ZURh", - "dGFJdGVtElIKDmJ5dGVfZGF0YV90eXBlGAEgASgOMjUuZ29vZ2xlLmNsb3Vk", - "Lm1vZGVsYXJtb3IudjEuQnl0ZURhdGFJdGVtLkJ5dGVJdGVtVHlwZUID4EEC", - "EhYKCWJ5dGVfZGF0YRgCIAEoDEID4EECIp0BCgxCeXRlSXRlbVR5cGUSHgoa", - "QllURV9JVEVNX1RZUEVfVU5TUEVDSUZJRUQQABISCg5QTEFJTlRFWFRfVVRG", - "OBABEgcKA1BERhACEhEKDVdPUkRfRE9DVU1FTlQQAxISCg5FWENFTF9ET0NV", - "TUVOVBAEEhcKE1BPV0VSUE9JTlRfRE9DVU1FTlQQBRIHCgNUWFQQBhIHCgND", - "U1YQByLQAgoTU2RwRGVpZGVudGlmeVJlc3VsdBJOCg9leGVjdXRpb25fc3Rh", - "dGUYASABKA4yMC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5GaWx0ZXJF", - "eGVjdXRpb25TdGF0ZUID4EEDEj4KDW1lc3NhZ2VfaXRlbXMYAiADKAsyJy5n", - "b29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5NZXNzYWdlSXRlbRJGCgttYXRj", - "aF9zdGF0ZRgDIAEoDjIsLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZp", - "bHRlck1hdGNoU3RhdGVCA+BBAxIyCgRkYXRhGAQgASgLMiQuZ29vZ2xlLmNs", - "b3VkLm1vZGVsYXJtb3IudjEuRGF0YUl0ZW0SGQoRdHJhbnNmb3JtZWRfYnl0", - "ZXMYBSABKAMSEgoKaW5mb190eXBlcxgGIAMoCSLEAgoKU2RwRmluZGluZxIR", - "CglpbmZvX3R5cGUYASABKAkSRAoKbGlrZWxpaG9vZBgCIAEoDjIwLmdvb2ds", - "ZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNkcEZpbmRpbmdMaWtlbGlob29kEksK", - "CGxvY2F0aW9uGAMgASgLMjkuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEu", - "U2RwRmluZGluZy5TZHBGaW5kaW5nTG9jYXRpb24ajwEKElNkcEZpbmRpbmdM", - "b2NhdGlvbhI5CgpieXRlX3JhbmdlGAEgASgLMiUuZ29vZ2xlLmNsb3VkLm1v", - "ZGVsYXJtb3IudjEuUmFuZ2VJbmZvEj4KD2NvZGVwb2ludF9yYW5nZRgCIAEo", - "CzIlLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlJhbmdlSW5mbyLEAgoa", - "UGlBbmRKYWlsYnJlYWtGaWx0ZXJSZXN1bHQSTgoPZXhlY3V0aW9uX3N0YXRl", - "GAEgASgOMjAuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyRXhl", - "Y3V0aW9uU3RhdGVCA+BBAxI+Cg1tZXNzYWdlX2l0ZW1zGAIgAygLMicuZ29v", - "Z2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuTWVzc2FnZUl0ZW0SRgoLbWF0Y2hf", - "c3RhdGUYAyABKA4yLC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5GaWx0", - "ZXJNYXRjaFN0YXRlQgPgQQMSTgoQY29uZmlkZW5jZV9sZXZlbBgFIAEoDjI0", - "Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkRldGVjdGlvbkNvbmZpZGVu", - "Y2VMZXZlbCLHAwoYTWFsaWNpb3VzVXJpRmlsdGVyUmVzdWx0Ek4KD2V4ZWN1", + "ay5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoWZ29v", + "Z2xlL3R5cGUvZGF0ZS5wcm90byL1CQoIVGVtcGxhdGUSEQoEbmFtZRgBIAEo", + "CUID4EEIEjQKC2NyZWF0ZV90aW1lGAIgASgLMhouZ29vZ2xlLnByb3RvYnVm", + "LlRpbWVzdGFtcEID4EEDEjQKC3VwZGF0ZV90aW1lGAMgASgLMhouZ29vZ2xl", + "LnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEkUKBmxhYmVscxgEIAMoCzIwLmdv", + "b2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlRlbXBsYXRlLkxhYmVsc0VudHJ5", + "QgPgQQESRAoNZmlsdGVyX2NvbmZpZxgFIAEoCzIoLmdvb2dsZS5jbG91ZC5t", + "b2RlbGFybW9yLnYxLkZpbHRlckNvbmZpZ0ID4EECElUKEXRlbXBsYXRlX21l", + "dGFkYXRhGAYgASgLMjUuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuVGVt", + "cGxhdGUuVGVtcGxhdGVNZXRhZGF0YUID4EEBGtoFChBUZW1wbGF0ZU1ldGFk", + "YXRhEi8KImlnbm9yZV9wYXJ0aWFsX2ludm9jYXRpb25fZmFpbHVyZXMYASAB", + "KAhCA+BBARIsCh9jdXN0b21fcHJvbXB0X3NhZmV0eV9lcnJvcl9jb2RlGAIg", + "ASgFQgPgQQESLwoiY3VzdG9tX3Byb21wdF9zYWZldHlfZXJyb3JfbWVzc2Fn", + "ZRgDIAEoCUID4EEBEjIKJWN1c3RvbV9sbG1fcmVzcG9uc2Vfc2FmZXR5X2Vy", + "cm9yX2NvZGUYBCABKAVCA+BBARI1CihjdXN0b21fbGxtX3Jlc3BvbnNlX3Nh", + "ZmV0eV9lcnJvcl9tZXNzYWdlGAUgASgJQgPgQQESJAoXbG9nX3RlbXBsYXRl", + "X29wZXJhdGlvbnMYBiABKAhCA+BBARIkChdsb2dfc2FuaXRpemVfb3BlcmF0", + "aW9ucxgHIAEoCEID4EEBEmQKEGVuZm9yY2VtZW50X3R5cGUYCCABKA4yRS5n", + "b29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5UZW1wbGF0ZS5UZW1wbGF0ZU1l", + "dGFkYXRhLkVuZm9yY2VtZW50VHlwZUID4EEBEnMKGG11bHRpX2xhbmd1YWdl", + "X2RldGVjdGlvbhgJIAEoCzJMLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYx", + "LlRlbXBsYXRlLlRlbXBsYXRlTWV0YWRhdGEuTXVsdGlMYW5ndWFnZURldGVj", + "dGlvbkID4EEBGkYKFk11bHRpTGFuZ3VhZ2VEZXRlY3Rpb24SLAofZW5hYmxl", + "X211bHRpX2xhbmd1YWdlX2RldGVjdGlvbhgBIAEoCEID4EECIlwKD0VuZm9y", + "Y2VtZW50VHlwZRIgChxFTkZPUkNFTUVOVF9UWVBFX1VOU1BFQ0lGSUVEEAAS", + "EAoMSU5TUEVDVF9PTkxZEAESFQoRSU5TUEVDVF9BTkRfQkxPQ0sQAhotCgtM", + "YWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOnrq", + "QXcKIm1vZGVsYXJtb3IuZ29vZ2xlYXBpcy5jb20vVGVtcGxhdGUSPHByb2pl", + "Y3RzL3twcm9qZWN0fS9sb2NhdGlvbnMve2xvY2F0aW9ufS90ZW1wbGF0ZXMv", + "e3RlbXBsYXRlfSoJdGVtcGxhdGVzMgh0ZW1wbGF0ZSKLCQoMRmxvb3JTZXR0", + "aW5nEhEKBG5hbWUYASABKAlCA+BBCBI0CgtjcmVhdGVfdGltZRgCIAEoCzIa", + "Lmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAxI0Cgt1cGRhdGVfdGlt", + "ZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAxJECg1m", + "aWx0ZXJfY29uZmlnGAQgASgLMiguZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3Iu", + "djEuRmlsdGVyQ29uZmlnQgPgQQISMgogZW5hYmxlX2Zsb29yX3NldHRpbmdf", + "ZW5mb3JjZW1lbnQYBSABKAhCA+BBAUgAiAEBElwKE2ludGVncmF0ZWRfc2Vy", + "dmljZXMYBiADKA4yOi5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5GbG9v", + "clNldHRpbmcuSW50ZWdyYXRlZFNlcnZpY2VCA+BBARJfChlhaV9wbGF0Zm9y", + "bV9mbG9vcl9zZXR0aW5nGAcgASgLMjIuZ29vZ2xlLmNsb3VkLm1vZGVsYXJt", + "b3IudjEuQWlQbGF0Zm9ybUZsb29yU2V0dGluZ0ID4EEBSAGIAQESYgoWZmxv", + "b3Jfc2V0dGluZ19tZXRhZGF0YRgIIAEoCzI9Lmdvb2dsZS5jbG91ZC5tb2Rl", + "bGFybW9yLnYxLkZsb29yU2V0dGluZy5GbG9vclNldHRpbmdNZXRhZGF0YUID", + "4EEBGtsBChRGbG9vclNldHRpbmdNZXRhZGF0YRJ7ChhtdWx0aV9sYW5ndWFn", + "ZV9kZXRlY3Rpb24YASABKAsyVC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52", + "MS5GbG9vclNldHRpbmcuRmxvb3JTZXR0aW5nTWV0YWRhdGEuTXVsdGlMYW5n", + "dWFnZURldGVjdGlvbkID4EEBGkYKFk11bHRpTGFuZ3VhZ2VEZXRlY3Rpb24S", + "LAofZW5hYmxlX211bHRpX2xhbmd1YWdlX2RldGVjdGlvbhgBIAEoCEID4EEC", + "IkgKEUludGVncmF0ZWRTZXJ2aWNlEiIKHklOVEVHUkFURURfU0VSVklDRV9V", + "TlNQRUNJRklFRBAAEg8KC0FJX1BMQVRGT1JNEAE68wHqQe8BCiZtb2RlbGFy", + "bW9yLmdvb2dsZWFwaXMuY29tL0Zsb29yU2V0dGluZxI0cHJvamVjdHMve3By", + "b2plY3R9L2xvY2F0aW9ucy97bG9jYXRpb259L2Zsb29yU2V0dGluZxIyZm9s", + "ZGVycy97Zm9sZGVyfS9sb2NhdGlvbnMve2xvY2F0aW9ufS9mbG9vclNldHRp", + "bmcSPm9yZ2FuaXphdGlvbnMve29yZ2FuaXphdGlvbn0vbG9jYXRpb25zL3ts", + "b2NhdGlvbn0vZmxvb3JTZXR0aW5nKg1mbG9vclNldHRpbmdzMgxmbG9vclNl", + "dHRpbmdCIwohX2VuYWJsZV9mbG9vcl9zZXR0aW5nX2VuZm9yY2VtZW50QhwK", + "Gl9haV9wbGF0Zm9ybV9mbG9vcl9zZXR0aW5nIo4BChZBaVBsYXRmb3JtRmxv", + "b3JTZXR0aW5nEhsKDGluc3BlY3Rfb25seRgBIAEoCEID4EEBSAASIAoRaW5z", + "cGVjdF9hbmRfYmxvY2sYAiABKAhCA+BBAUgAEiEKFGVuYWJsZV9jbG91ZF9s", + "b2dnaW5nGAMgASgIQgPgQQFCEgoQZW5mb3JjZW1lbnRfdHlwZSKvAQoUTGlz", + "dFRlbXBsYXRlc1JlcXVlc3QSOgoGcGFyZW50GAEgASgJQirgQQL6QSQSIm1v", + "ZGVsYXJtb3IuZ29vZ2xlYXBpcy5jb20vVGVtcGxhdGUSFgoJcGFnZV9zaXpl", + "GAIgASgFQgPgQQESFwoKcGFnZV90b2tlbhgDIAEoCUID4EEBEhMKBmZpbHRl", + "chgEIAEoCUID4EEBEhUKCG9yZGVyX2J5GAUgASgJQgPgQQEifgoVTGlzdFRl", + "bXBsYXRlc1Jlc3BvbnNlEjcKCXRlbXBsYXRlcxgBIAMoCzIkLmdvb2dsZS5j", + "bG91ZC5tb2RlbGFybW9yLnYxLlRlbXBsYXRlEhcKD25leHRfcGFnZV90b2tl", + "bhgCIAEoCRITCgt1bnJlYWNoYWJsZRgDIAMoCSJOChJHZXRUZW1wbGF0ZVJl", + "cXVlc3QSOAoEbmFtZRgBIAEoCUIq4EEC+kEkCiJtb2RlbGFybW9yLmdvb2ds", + "ZWFwaXMuY29tL1RlbXBsYXRlIssBChVDcmVhdGVUZW1wbGF0ZVJlcXVlc3QS", + "OgoGcGFyZW50GAEgASgJQirgQQL6QSQSIm1vZGVsYXJtb3IuZ29vZ2xlYXBp", + "cy5jb20vVGVtcGxhdGUSGAoLdGVtcGxhdGVfaWQYAiABKAlCA+BBAhI7Cgh0", + "ZW1wbGF0ZRgDIAEoCzIkLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlRl", + "bXBsYXRlQgPgQQISHwoKcmVxdWVzdF9pZBgEIAEoCUIL4EEB4ozP1wgCCAEi", + "qwEKFVVwZGF0ZVRlbXBsYXRlUmVxdWVzdBI0Cgt1cGRhdGVfbWFzaxgBIAEo", + "CzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCA+BBAhI7Cgh0ZW1wbGF0", + "ZRgCIAEoCzIkLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlRlbXBsYXRl", + "QgPgQQISHwoKcmVxdWVzdF9pZBgDIAEoCUIL4EEB4ozP1wgCCAEicgoVRGVs", + "ZXRlVGVtcGxhdGVSZXF1ZXN0EjgKBG5hbWUYASABKAlCKuBBAvpBJAoibW9k", + "ZWxhcm1vci5nb29nbGVhcGlzLmNvbS9UZW1wbGF0ZRIfCgpyZXF1ZXN0X2lk", + "GAIgASgJQgvgQQHijM/XCAIIASJWChZHZXRGbG9vclNldHRpbmdSZXF1ZXN0", + "EjwKBG5hbWUYASABKAlCLuBBAvpBKAombW9kZWxhcm1vci5nb29nbGVhcGlz", + "LmNvbS9GbG9vclNldHRpbmcilwEKGVVwZGF0ZUZsb29yU2V0dGluZ1JlcXVl", + "c3QSRAoNZmxvb3Jfc2V0dGluZxgBIAEoCzIoLmdvb2dsZS5jbG91ZC5tb2Rl", + "bGFybW9yLnYxLkZsb29yU2V0dGluZ0ID4EECEjQKC3VwZGF0ZV9tYXNrGAIg", + "ASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0ID4EEBIu8CCgxGaWx0", + "ZXJDb25maWcSSAoMcmFpX3NldHRpbmdzGAEgASgLMi0uZ29vZ2xlLmNsb3Vk", + "Lm1vZGVsYXJtb3IudjEuUmFpRmlsdGVyU2V0dGluZ3NCA+BBARJICgxzZHBf", + "c2V0dGluZ3MYAiABKAsyLS5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5T", + "ZHBGaWx0ZXJTZXR0aW5nc0ID4EEBEmcKIHBpX2FuZF9qYWlsYnJlYWtfZmls", + "dGVyX3NldHRpbmdzGAMgASgLMjguZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3Iu", + "djEuUGlBbmRKYWlsYnJlYWtGaWx0ZXJTZXR0aW5nc0ID4EEBEmIKHW1hbGlj", + "aW91c191cmlfZmlsdGVyX3NldHRpbmdzGAQgASgLMjYuZ29vZ2xlLmNsb3Vk", + "Lm1vZGVsYXJtb3IudjEuTWFsaWNpb3VzVXJpRmlsdGVyU2V0dGluZ3NCA+BB", + "ASLhAgocUGlBbmRKYWlsYnJlYWtGaWx0ZXJTZXR0aW5ncxJ5ChJmaWx0ZXJf", + "ZW5mb3JjZW1lbnQYASABKA4yWC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52", + "MS5QaUFuZEphaWxicmVha0ZpbHRlclNldHRpbmdzLlBpQW5kSmFpbGJyZWFr", + "RmlsdGVyRW5mb3JjZW1lbnRCA+BBARJTChBjb25maWRlbmNlX2xldmVsGAMg", + "ASgOMjQuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRGV0ZWN0aW9uQ29u", + "ZmlkZW5jZUxldmVsQgPgQQEicQofUGlBbmRKYWlsYnJlYWtGaWx0ZXJFbmZv", + "cmNlbWVudBIzCi9QSV9BTkRfSkFJTEJSRUFLX0ZJTFRFUl9FTkZPUkNFTUVO", + "VF9VTlNQRUNJRklFRBAAEgsKB0VOQUJMRUQQARIMCghESVNBQkxFRBACIoEC", + "ChpNYWxpY2lvdXNVcmlGaWx0ZXJTZXR0aW5ncxJ1ChJmaWx0ZXJfZW5mb3Jj", + "ZW1lbnQYASABKA4yVC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5NYWxp", + "Y2lvdXNVcmlGaWx0ZXJTZXR0aW5ncy5NYWxpY2lvdXNVcmlGaWx0ZXJFbmZv", + "cmNlbWVudEID4EEBImwKHU1hbGljaW91c1VyaUZpbHRlckVuZm9yY2VtZW50", + "EjAKLE1BTElDSU9VU19VUklfRklMVEVSX0VORk9SQ0VNRU5UX1VOU1BFQ0lG", + "SUVEEAASCwoHRU5BQkxFRBABEgwKCERJU0FCTEVEEAIijgIKEVJhaUZpbHRl", + "clNldHRpbmdzElEKC3JhaV9maWx0ZXJzGAEgAygLMjcuZ29vZ2xlLmNsb3Vk", + "Lm1vZGVsYXJtb3IudjEuUmFpRmlsdGVyU2V0dGluZ3MuUmFpRmlsdGVyQgPg", + "QQIapQEKCVJhaUZpbHRlchJDCgtmaWx0ZXJfdHlwZRgBIAEoDjIpLmdvb2ds", + "ZS5jbG91ZC5tb2RlbGFybW9yLnYxLlJhaUZpbHRlclR5cGVCA+BBAhJTChBj", + "b25maWRlbmNlX2xldmVsGAIgASgOMjQuZ29vZ2xlLmNsb3VkLm1vZGVsYXJt", + "b3IudjEuRGV0ZWN0aW9uQ29uZmlkZW5jZUxldmVsQgPgQQEiwAEKEVNkcEZp", + "bHRlclNldHRpbmdzEkcKDGJhc2ljX2NvbmZpZxgBIAEoCzIqLmdvb2dsZS5j", + "bG91ZC5tb2RlbGFybW9yLnYxLlNkcEJhc2ljQ29uZmlnQgPgQQFIABJNCg9h", + "ZHZhbmNlZF9jb25maWcYAiABKAsyLS5nb29nbGUuY2xvdWQubW9kZWxhcm1v", + "ci52MS5TZHBBZHZhbmNlZENvbmZpZ0ID4EEBSABCEwoRc2RwX2NvbmZpZ3Vy", + "YXRpb24i3QEKDlNkcEJhc2ljQ29uZmlnEmUKEmZpbHRlcl9lbmZvcmNlbWVu", + "dBgDIAEoDjJELmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNkcEJhc2lj", + "Q29uZmlnLlNkcEJhc2ljQ29uZmlnRW5mb3JjZW1lbnRCA+BBASJkChlTZHBC", + "YXNpY0NvbmZpZ0VuZm9yY2VtZW50EiwKKFNEUF9CQVNJQ19DT05GSUdfRU5G", + "T1JDRU1FTlRfVU5TUEVDSUZJRUQQABILCgdFTkFCTEVEEAESDAoIRElTQUJM", + "RUQQAiJUChFTZHBBZHZhbmNlZENvbmZpZxIdChBpbnNwZWN0X3RlbXBsYXRl", + "GAEgASgJQgPgQQESIAoTZGVpZGVudGlmeV90ZW1wbGF0ZRgCIAEoCUID4EEB", + "IuYCChlTYW5pdGl6ZVVzZXJQcm9tcHRSZXF1ZXN0EjgKBG5hbWUYASABKAlC", + "KuBBAvpBJAoibW9kZWxhcm1vci5nb29nbGVhcGlzLmNvbS9UZW1wbGF0ZRJD", + "ChB1c2VyX3Byb21wdF9kYXRhGAIgASgLMiQuZ29vZ2xlLmNsb3VkLm1vZGVs", + "YXJtb3IudjEuRGF0YUl0ZW1CA+BBAhJqCiFtdWx0aV9sYW5ndWFnZV9kZXRl", + "Y3Rpb25fbWV0YWRhdGEYBiABKAsyOi5nb29nbGUuY2xvdWQubW9kZWxhcm1v", + "ci52MS5NdWx0aUxhbmd1YWdlRGV0ZWN0aW9uTWV0YWRhdGFCA+BBARJLCg5z", + "dHJlYW1pbmdfbW9kZRgHIAEoDjIpLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9y", + "LnYxLlN0cmVhbWluZ01vZGVCA+BBAUgAiAEBQhEKD19zdHJlYW1pbmdfbW9k", + "ZSKGAwocU2FuaXRpemVNb2RlbFJlc3BvbnNlUmVxdWVzdBI4CgRuYW1lGAEg", + "ASgJQirgQQL6QSQKIm1vZGVsYXJtb3IuZ29vZ2xlYXBpcy5jb20vVGVtcGxh", + "dGUSRgoTbW9kZWxfcmVzcG9uc2VfZGF0YRgCIAEoCzIkLmdvb2dsZS5jbG91", + "ZC5tb2RlbGFybW9yLnYxLkRhdGFJdGVtQgPgQQISGAoLdXNlcl9wcm9tcHQY", + "BCABKAlCA+BBARJqCiFtdWx0aV9sYW5ndWFnZV9kZXRlY3Rpb25fbWV0YWRh", + "dGEYByABKAsyOi5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5NdWx0aUxh", + "bmd1YWdlRGV0ZWN0aW9uTWV0YWRhdGFCA+BBARJLCg5zdHJlYW1pbmdfbW9k", + "ZRgIIAEoDjIpLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlN0cmVhbWlu", + "Z01vZGVCA+BBAUgAiAEBQhEKD19zdHJlYW1pbmdfbW9kZSJuChpTYW5pdGl6", + "ZVVzZXJQcm9tcHRSZXNwb25zZRJQChNzYW5pdGl6YXRpb25fcmVzdWx0GAEg", + "ASgLMi4uZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuU2FuaXRpemF0aW9u", + "UmVzdWx0QgPgQQMicQodU2FuaXRpemVNb2RlbFJlc3BvbnNlUmVzcG9uc2US", + "UAoTc2FuaXRpemF0aW9uX3Jlc3VsdBgBIAEoCzIuLmdvb2dsZS5jbG91ZC5t", + "b2RlbGFybW9yLnYxLlNhbml0aXphdGlvblJlc3VsdEID4EEDIpUFChJTYW5p", + "dGl6YXRpb25SZXN1bHQSTQoSZmlsdGVyX21hdGNoX3N0YXRlGAEgASgOMiwu", + "Z29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyTWF0Y2hTdGF0ZUID", + "4EEDEl4KDmZpbHRlcl9yZXN1bHRzGAIgAygLMkEuZ29vZ2xlLmNsb3VkLm1v", + "ZGVsYXJtb3IudjEuU2FuaXRpemF0aW9uUmVzdWx0LkZpbHRlclJlc3VsdHNF", + "bnRyeUID4EEDEkwKEWludm9jYXRpb25fcmVzdWx0GAQgASgOMiwuZ29vZ2xl", + "LmNsb3VkLm1vZGVsYXJtb3IudjEuSW52b2NhdGlvblJlc3VsdEID4EEDEmcK", + "FXNhbml0aXphdGlvbl9tZXRhZGF0YRgDIAEoCzJDLmdvb2dsZS5jbG91ZC5t", + "b2RlbGFybW9yLnYxLlNhbml0aXphdGlvblJlc3VsdC5TYW5pdGl6YXRpb25N", + "ZXRhZGF0YUID4EEDGrgBChRTYW5pdGl6YXRpb25NZXRhZGF0YRISCgplcnJv", + "cl9jb2RlGAEgASgDEhUKDWVycm9yX21lc3NhZ2UYAiABKAkSKgoiaWdub3Jl", + "X3BhcnRpYWxfaW52b2NhdGlvbl9mYWlsdXJlcxgDIAEoCBJJChZzdHJlYW1f", + "Y2h1bmtfcHJvY2Vzc2VkGAQgASgLMiQuZ29vZ2xlLmNsb3VkLm1vZGVsYXJt", + "b3IudjEuRGF0YUl0ZW1CA+BBAxpeChJGaWx0ZXJSZXN1bHRzRW50cnkSCwoD", + "a2V5GAEgASgJEjcKBXZhbHVlGAIgASgLMiguZ29vZ2xlLmNsb3VkLm1vZGVs", + "YXJtb3IudjEuRmlsdGVyUmVzdWx0OgI4ASJsCh5NdWx0aUxhbmd1YWdlRGV0", + "ZWN0aW9uTWV0YWRhdGESHAoPc291cmNlX2xhbmd1YWdlGAEgASgJQgPgQQES", + "LAofZW5hYmxlX211bHRpX2xhbmd1YWdlX2RldGVjdGlvbhgCIAEoCEID4EEB", + "IpwECgxGaWx0ZXJSZXN1bHQSSAoRcmFpX2ZpbHRlcl9yZXN1bHQYASABKAsy", + "Ky5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5SYWlGaWx0ZXJSZXN1bHRI", + "ABJIChFzZHBfZmlsdGVyX3Jlc3VsdBgCIAEoCzIrLmdvb2dsZS5jbG91ZC5t", + "b2RlbGFybW9yLnYxLlNkcEZpbHRlclJlc3VsdEgAEmAKHnBpX2FuZF9qYWls", + "YnJlYWtfZmlsdGVyX3Jlc3VsdBgDIAEoCzI2Lmdvb2dsZS5jbG91ZC5tb2Rl", + "bGFybW9yLnYxLlBpQW5kSmFpbGJyZWFrRmlsdGVyUmVzdWx0SAASWwobbWFs", + "aWNpb3VzX3VyaV9maWx0ZXJfcmVzdWx0GAQgASgLMjQuZ29vZ2xlLmNsb3Vk", + "Lm1vZGVsYXJtb3IudjEuTWFsaWNpb3VzVXJpRmlsdGVyUmVzdWx0SAASUQoZ", + "Y3NhbV9maWx0ZXJfZmlsdGVyX3Jlc3VsdBgFIAEoCzIsLmdvb2dsZS5jbG91", + "ZC5tb2RlbGFybW9yLnYxLkNzYW1GaWx0ZXJSZXN1bHRIABJVChh2aXJ1c19z", + "Y2FuX2ZpbHRlcl9yZXN1bHQYBiABKAsyMS5nb29nbGUuY2xvdWQubW9kZWxh", + "cm1vci52MS5WaXJ1c1NjYW5GaWx0ZXJSZXN1bHRIAEIPCg1maWx0ZXJfcmVz", + "dWx0Ir8FCg9SYWlGaWx0ZXJSZXN1bHQSTgoPZXhlY3V0aW9uX3N0YXRlGAEg", + "ASgOMjAuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyRXhlY3V0", + "aW9uU3RhdGVCA+BBAxI+Cg1tZXNzYWdlX2l0ZW1zGAIgAygLMicuZ29vZ2xl", + "LmNsb3VkLm1vZGVsYXJtb3IudjEuTWVzc2FnZUl0ZW0SRgoLbWF0Y2hfc3Rh", + "dGUYAyABKA4yLC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5GaWx0ZXJN", + "YXRjaFN0YXRlQgPgQQMSZgoXcmFpX2ZpbHRlcl90eXBlX3Jlc3VsdHMYBCAD", + "KAsyRS5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5SYWlGaWx0ZXJSZXN1", + "bHQuUmFpRmlsdGVyVHlwZVJlc3VsdHNFbnRyeRrtAQoTUmFpRmlsdGVyVHlw", + "ZVJlc3VsdBI+CgtmaWx0ZXJfdHlwZRgBIAEoDjIpLmdvb2dsZS5jbG91ZC5t", + "b2RlbGFybW9yLnYxLlJhaUZpbHRlclR5cGUSTgoQY29uZmlkZW5jZV9sZXZl", + "bBgCIAEoDjI0Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkRldGVjdGlv", + "bkNvbmZpZGVuY2VMZXZlbBJGCgttYXRjaF9zdGF0ZRgDIAEoDjIsLmdvb2ds", + "ZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZpbHRlck1hdGNoU3RhdGVCA+BBAxp8", + "ChlSYWlGaWx0ZXJUeXBlUmVzdWx0c0VudHJ5EgsKA2tleRgBIAEoCRJOCgV2", + "YWx1ZRgCIAEoCzI/Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlJhaUZp", + "bHRlclJlc3VsdC5SYWlGaWx0ZXJUeXBlUmVzdWx0OgI4ASKxAQoPU2RwRmls", + "dGVyUmVzdWx0EkYKDmluc3BlY3RfcmVzdWx0GAEgASgLMiwuZ29vZ2xlLmNs", + "b3VkLm1vZGVsYXJtb3IudjEuU2RwSW5zcGVjdFJlc3VsdEgAEkwKEWRlaWRl", + "bnRpZnlfcmVzdWx0GAIgASgLMi8uZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3Iu", + "djEuU2RwRGVpZGVudGlmeVJlc3VsdEgAQggKBnJlc3VsdCLAAgoQU2RwSW5z", + "cGVjdFJlc3VsdBJOCg9leGVjdXRpb25fc3RhdGUYASABKA4yMC5nb29nbGUu", + "Y2xvdWQubW9kZWxhcm1vci52MS5GaWx0ZXJFeGVjdXRpb25TdGF0ZUID4EED", + "Ej4KDW1lc3NhZ2VfaXRlbXMYAiADKAsyJy5nb29nbGUuY2xvdWQubW9kZWxh", + "cm1vci52MS5NZXNzYWdlSXRlbRJGCgttYXRjaF9zdGF0ZRgDIAEoDjIsLmdv", + "b2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZpbHRlck1hdGNoU3RhdGVCA+BB", + "AxI4CghmaW5kaW5ncxgEIAMoCzImLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9y", + "LnYxLlNkcEZpbmRpbmcSGgoSZmluZGluZ3NfdHJ1bmNhdGVkGAUgASgIImYK", + "CERhdGFJdGVtEg4KBHRleHQYASABKAlIABI9CglieXRlX2l0ZW0YAiABKAsy", + "KC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5CeXRlRGF0YUl0ZW1IAEIL", + "CglkYXRhX2l0ZW0imgIKDEJ5dGVEYXRhSXRlbRJSCg5ieXRlX2RhdGFfdHlw", + "ZRgBIAEoDjI1Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkJ5dGVEYXRh", + "SXRlbS5CeXRlSXRlbVR5cGVCA+BBAhIWCglieXRlX2RhdGEYAiABKAxCA+BB", + "AiKdAQoMQnl0ZUl0ZW1UeXBlEh4KGkJZVEVfSVRFTV9UWVBFX1VOU1BFQ0lG", + "SUVEEAASEgoOUExBSU5URVhUX1VURjgQARIHCgNQREYQAhIRCg1XT1JEX0RP", + "Q1VNRU5UEAMSEgoORVhDRUxfRE9DVU1FTlQQBBIXChNQT1dFUlBPSU5UX0RP", + "Q1VNRU5UEAUSBwoDVFhUEAYSBwoDQ1NWEAci0AIKE1NkcERlaWRlbnRpZnlS", + "ZXN1bHQSTgoPZXhlY3V0aW9uX3N0YXRlGAEgASgOMjAuZ29vZ2xlLmNsb3Vk", + "Lm1vZGVsYXJtb3IudjEuRmlsdGVyRXhlY3V0aW9uU3RhdGVCA+BBAxI+Cg1t", + "ZXNzYWdlX2l0ZW1zGAIgAygLMicuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3Iu", + "djEuTWVzc2FnZUl0ZW0SRgoLbWF0Y2hfc3RhdGUYAyABKA4yLC5nb29nbGUu", + "Y2xvdWQubW9kZWxhcm1vci52MS5GaWx0ZXJNYXRjaFN0YXRlQgPgQQMSMgoE", + "ZGF0YRgEIAEoCzIkLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkRhdGFJ", + "dGVtEhkKEXRyYW5zZm9ybWVkX2J5dGVzGAUgASgDEhIKCmluZm9fdHlwZXMY", + "BiADKAkixAIKClNkcEZpbmRpbmcSEQoJaW5mb190eXBlGAEgASgJEkQKCmxp", + "a2VsaWhvb2QYAiABKA4yMC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5T", + "ZHBGaW5kaW5nTGlrZWxpaG9vZBJLCghsb2NhdGlvbhgDIAEoCzI5Lmdvb2ds", + "ZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNkcEZpbmRpbmcuU2RwRmluZGluZ0xv", + "Y2F0aW9uGo8BChJTZHBGaW5kaW5nTG9jYXRpb24SOQoKYnl0ZV9yYW5nZRgB", + "IAEoCzIlLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlJhbmdlSW5mbxI+", + "Cg9jb2RlcG9pbnRfcmFuZ2UYAiABKAsyJS5nb29nbGUuY2xvdWQubW9kZWxh", + "cm1vci52MS5SYW5nZUluZm8ixAIKGlBpQW5kSmFpbGJyZWFrRmlsdGVyUmVz", + "dWx0Ek4KD2V4ZWN1dGlvbl9zdGF0ZRgBIAEoDjIwLmdvb2dsZS5jbG91ZC5t", + "b2RlbGFybW9yLnYxLkZpbHRlckV4ZWN1dGlvblN0YXRlQgPgQQMSPgoNbWVz", + "c2FnZV9pdGVtcxgCIAMoCzInLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYx", + "Lk1lc3NhZ2VJdGVtEkYKC21hdGNoX3N0YXRlGAMgASgOMiwuZ29vZ2xlLmNs", + "b3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyTWF0Y2hTdGF0ZUID4EEDEk4KEGNv", + "bmZpZGVuY2VfbGV2ZWwYBSABKA4yNC5nb29nbGUuY2xvdWQubW9kZWxhcm1v", + "ci52MS5EZXRlY3Rpb25Db25maWRlbmNlTGV2ZWwixwMKGE1hbGljaW91c1Vy", + "aUZpbHRlclJlc3VsdBJOCg9leGVjdXRpb25fc3RhdGUYASABKA4yMC5nb29n", + "bGUuY2xvdWQubW9kZWxhcm1vci52MS5GaWx0ZXJFeGVjdXRpb25TdGF0ZUID", + "4EEDEj4KDW1lc3NhZ2VfaXRlbXMYAiADKAsyJy5nb29nbGUuY2xvdWQubW9k", + "ZWxhcm1vci52MS5NZXNzYWdlSXRlbRJGCgttYXRjaF9zdGF0ZRgDIAEoDjIs", + "Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZpbHRlck1hdGNoU3RhdGVC", + "A+BBAxJxChttYWxpY2lvdXNfdXJpX21hdGNoZWRfaXRlbXMYBCADKAsyTC5n", + "b29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5NYWxpY2lvdXNVcmlGaWx0ZXJS", + "ZXN1bHQuTWFsaWNpb3VzVXJpTWF0Y2hlZEl0ZW0aYAoXTWFsaWNpb3VzVXJp", + "TWF0Y2hlZEl0ZW0SCwoDdXJpGAEgASgJEjgKCWxvY2F0aW9ucxgCIAMoCzIl", + "Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlJhbmdlSW5mbyKgBAoVVmly", + "dXNTY2FuRmlsdGVyUmVzdWx0Ek4KD2V4ZWN1dGlvbl9zdGF0ZRgBIAEoDjIw", + "Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkZpbHRlckV4ZWN1dGlvblN0", + "YXRlQgPgQQMSPgoNbWVzc2FnZV9pdGVtcxgCIAMoCzInLmdvb2dsZS5jbG91", + "ZC5tb2RlbGFybW9yLnYxLk1lc3NhZ2VJdGVtEkYKC21hdGNoX3N0YXRlGAMg", + "ASgOMiwuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyTWF0Y2hT", + "dGF0ZUID4EEDEmIKFHNjYW5uZWRfY29udGVudF90eXBlGAQgASgOMkQuZ29v", + "Z2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuVmlydXNTY2FuRmlsdGVyUmVzdWx0", + "LlNjYW5uZWRDb250ZW50VHlwZRIZCgxzY2FubmVkX3NpemUYBSABKANIAIgB", + "ARI+Cg12aXJ1c19kZXRhaWxzGAYgAygLMicuZ29vZ2xlLmNsb3VkLm1vZGVs", + "YXJtb3IudjEuVmlydXNEZXRhaWwiXwoSU2Nhbm5lZENvbnRlbnRUeXBlEiQK", + "IFNDQU5ORURfQ09OVEVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASCwoHVU5LTk9X", + "ThABEg0KCVBMQUlOVEVYVBACEgcKA1BERhADQg8KDV9zY2FubmVkX3NpemUi", + "mwIKC1ZpcnVzRGV0YWlsEg4KBnZlbmRvchgBIAEoCRINCgVuYW1lcxgCIAMo", + "CRJHCgt0aHJlYXRfdHlwZRgDIAEoDjIyLmdvb2dsZS5jbG91ZC5tb2RlbGFy", + "bW9yLnYxLlZpcnVzRGV0YWlsLlRocmVhdFR5cGUiowEKClRocmVhdFR5cGUS", + "GwoXVEhSRUFUX1RZUEVfVU5TUEVDSUZJRUQQABILCgdVTktOT1dOEAESEQoN", + "VklSVVNfT1JfV09STRACEhUKEU1BTElDSU9VU19QUk9HUkFNEAMSHwobUE9U", + "RU5USUFMTFlfSEFSTUZVTF9DT05URU5UEAQSIAocUE9URU5USUFMTFlfVU5X", + "QU5URURfQ09OVEVOVBAFIuoBChBDc2FtRmlsdGVyUmVzdWx0Ek4KD2V4ZWN1", "dGlvbl9zdGF0ZRgBIAEoDjIwLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYx", "LkZpbHRlckV4ZWN1dGlvblN0YXRlQgPgQQMSPgoNbWVzc2FnZV9pdGVtcxgC", "IAMoCzInLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLk1lc3NhZ2VJdGVt", "EkYKC21hdGNoX3N0YXRlGAMgASgOMiwuZ29vZ2xlLmNsb3VkLm1vZGVsYXJt", - "b3IudjEuRmlsdGVyTWF0Y2hTdGF0ZUID4EEDEnEKG21hbGljaW91c191cmlf", - "bWF0Y2hlZF9pdGVtcxgEIAMoCzJMLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9y", - "LnYxLk1hbGljaW91c1VyaUZpbHRlclJlc3VsdC5NYWxpY2lvdXNVcmlNYXRj", - "aGVkSXRlbRpgChdNYWxpY2lvdXNVcmlNYXRjaGVkSXRlbRILCgN1cmkYASAB", - "KAkSOAoJbG9jYXRpb25zGAIgAygLMiUuZ29vZ2xlLmNsb3VkLm1vZGVsYXJt", - "b3IudjEuUmFuZ2VJbmZvIqAEChVWaXJ1c1NjYW5GaWx0ZXJSZXN1bHQSTgoP", - "ZXhlY3V0aW9uX3N0YXRlGAEgASgOMjAuZ29vZ2xlLmNsb3VkLm1vZGVsYXJt", - "b3IudjEuRmlsdGVyRXhlY3V0aW9uU3RhdGVCA+BBAxI+Cg1tZXNzYWdlX2l0", - "ZW1zGAIgAygLMicuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuTWVzc2Fn", - "ZUl0ZW0SRgoLbWF0Y2hfc3RhdGUYAyABKA4yLC5nb29nbGUuY2xvdWQubW9k", - "ZWxhcm1vci52MS5GaWx0ZXJNYXRjaFN0YXRlQgPgQQMSYgoUc2Nhbm5lZF9j", - "b250ZW50X3R5cGUYBCABKA4yRC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52", - "MS5WaXJ1c1NjYW5GaWx0ZXJSZXN1bHQuU2Nhbm5lZENvbnRlbnRUeXBlEhkK", - "DHNjYW5uZWRfc2l6ZRgFIAEoA0gAiAEBEj4KDXZpcnVzX2RldGFpbHMYBiAD", - "KAsyJy5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5WaXJ1c0RldGFpbCJf", - "ChJTY2FubmVkQ29udGVudFR5cGUSJAogU0NBTk5FRF9DT05URU5UX1RZUEVf", - "VU5TUEVDSUZJRUQQABILCgdVTktOT1dOEAESDQoJUExBSU5URVhUEAISBwoD", - "UERGEANCDwoNX3NjYW5uZWRfc2l6ZSKbAgoLVmlydXNEZXRhaWwSDgoGdmVu", - "ZG9yGAEgASgJEg0KBW5hbWVzGAIgAygJEkcKC3RocmVhdF90eXBlGAMgASgO", - "MjIuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuVmlydXNEZXRhaWwuVGhy", - "ZWF0VHlwZSKjAQoKVGhyZWF0VHlwZRIbChdUSFJFQVRfVFlQRV9VTlNQRUNJ", - "RklFRBAAEgsKB1VOS05PV04QARIRCg1WSVJVU19PUl9XT1JNEAISFQoRTUFM", - "SUNJT1VTX1BST0dSQU0QAxIfChtQT1RFTlRJQUxMWV9IQVJNRlVMX0NPTlRF", - "TlQQBBIgChxQT1RFTlRJQUxMWV9VTldBTlRFRF9DT05URU5UEAUi6gEKEENz", - "YW1GaWx0ZXJSZXN1bHQSTgoPZXhlY3V0aW9uX3N0YXRlGAEgASgOMjAuZ29v", - "Z2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmlsdGVyRXhlY3V0aW9uU3RhdGVC", - "A+BBAxI+Cg1tZXNzYWdlX2l0ZW1zGAIgAygLMicuZ29vZ2xlLmNsb3VkLm1v", - "ZGVsYXJtb3IudjEuTWVzc2FnZUl0ZW0SRgoLbWF0Y2hfc3RhdGUYAyABKA4y", - "LC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5GaWx0ZXJNYXRjaFN0YXRl", - "QgPgQQMiuAEKC01lc3NhZ2VJdGVtEkkKDG1lc3NhZ2VfdHlwZRgBIAEoDjIz", - "Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLk1lc3NhZ2VJdGVtLk1lc3Nh", - "Z2VUeXBlEg8KB21lc3NhZ2UYAiABKAkiTQoLTWVzc2FnZVR5cGUSHAoYTUVT", - "U0FHRV9UWVBFX1VOU1BFQ0lGSUVEEAASCAoESU5GTxABEgsKB1dBUk5JTkcQ", - "AhIJCgVFUlJPUhADIkMKCVJhbmdlSW5mbxISCgVzdGFydBgBIAEoA0gAiAEB", - "EhAKA2VuZBgCIAEoA0gBiAEBQggKBl9zdGFydEIGCgRfZW5kKlsKEEZpbHRl", - "ck1hdGNoU3RhdGUSIgoeRklMVEVSX01BVENIX1NUQVRFX1VOU1BFQ0lGSUVE", - "EAASEgoOTk9fTUFUQ0hfRk9VTkQQARIPCgtNQVRDSF9GT1VORBACKmwKFEZp", - "bHRlckV4ZWN1dGlvblN0YXRlEiYKIkZJTFRFUl9FWEVDVVRJT05fU1RBVEVf", - "VU5TUEVDSUZJRUQQABIVChFFWEVDVVRJT05fU1VDQ0VTUxABEhUKEUVYRUNV", - "VElPTl9TS0lQUEVEEAIqdwoNUmFpRmlsdGVyVHlwZRIfChtSQUlfRklMVEVS", - "X1RZUEVfVU5TUEVDSUZJRUQQABIVChFTRVhVQUxMWV9FWFBMSUNJVBACEg8K", - "C0hBVEVfU1BFRUNIEAMSDgoKSEFSQVNTTUVOVBAGEg0KCURBTkdFUk9VUxAR", - "KnkKGERldGVjdGlvbkNvbmZpZGVuY2VMZXZlbBIqCiZERVRFQ1RJT05fQ09O", - "RklERU5DRV9MRVZFTF9VTlNQRUNJRklFRBAAEhEKDUxPV19BTkRfQUJPVkUQ", - "ARIUChBNRURJVU1fQU5EX0FCT1ZFEAISCAoESElHSBADKooBChRTZHBGaW5k", - "aW5nTGlrZWxpaG9vZBImCiJTRFBfRklORElOR19MSUtFTElIT09EX1VOU1BF", - "Q0lGSUVEEAASEQoNVkVSWV9VTkxJS0VMWRABEgwKCFVOTElLRUxZEAISDAoI", - "UE9TU0lCTEUQAxIKCgZMSUtFTFkQBBIPCgtWRVJZX0xJS0VMWRAFKlwKEElu", - "dm9jYXRpb25SZXN1bHQSIQodSU5WT0NBVElPTl9SRVNVTFRfVU5TUEVDSUZJ", - "RUQQABILCgdTVUNDRVNTEAESCwoHUEFSVElBTBACEgsKB0ZBSUxVUkUQAzLE", - "EAoKTW9kZWxBcm1vchK0AQoNTGlzdFRlbXBsYXRlcxIwLmdvb2dsZS5jbG91", - "ZC5tb2RlbGFybW9yLnYxLkxpc3RUZW1wbGF0ZXNSZXF1ZXN0GjEuZ29vZ2xl", - "LmNsb3VkLm1vZGVsYXJtb3IudjEuTGlzdFRlbXBsYXRlc1Jlc3BvbnNlIj7a", - "QQZwYXJlbnSC0+STAi8SLS92MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRp", - "b25zLyp9L3RlbXBsYXRlcxKhAQoLR2V0VGVtcGxhdGUSLi5nb29nbGUuY2xv", - "dWQubW9kZWxhcm1vci52MS5HZXRUZW1wbGF0ZVJlcXVlc3QaJC5nb29nbGUu", - "Y2xvdWQubW9kZWxhcm1vci52MS5UZW1wbGF0ZSI82kEEbmFtZYLT5JMCLxIt", - "L3YxL3tuYW1lPXByb2plY3RzLyovbG9jYXRpb25zLyovdGVtcGxhdGVzLyp9", - "EsgBCg5DcmVhdGVUZW1wbGF0ZRIxLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9y", - "LnYxLkNyZWF0ZVRlbXBsYXRlUmVxdWVzdBokLmdvb2dsZS5jbG91ZC5tb2Rl", - "bGFybW9yLnYxLlRlbXBsYXRlIl3aQRtwYXJlbnQsdGVtcGxhdGUsdGVtcGxh", - "dGVfaWSC0+STAjkiLS92MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRpb25z", - "Lyp9L3RlbXBsYXRlczoIdGVtcGxhdGUSygEKDlVwZGF0ZVRlbXBsYXRlEjEu", - "Z29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuVXBkYXRlVGVtcGxhdGVSZXF1", - "ZXN0GiQuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuVGVtcGxhdGUiX9pB", - "FHRlbXBsYXRlLHVwZGF0ZV9tYXNrgtPkkwJCMjYvdjEve3RlbXBsYXRlLm5h", - "bWU9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi90ZW1wbGF0ZXMvKn06CHRlbXBs", - "YXRlEpkBCg5EZWxldGVUZW1wbGF0ZRIxLmdvb2dsZS5jbG91ZC5tb2RlbGFy", - "bW9yLnYxLkRlbGV0ZVRlbXBsYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1", - "Zi5FbXB0eSI82kEEbmFtZYLT5JMCLyotL3YxL3tuYW1lPXByb2plY3RzLyov", - "bG9jYXRpb25zLyovdGVtcGxhdGVzLyp9EpgCCg9HZXRGbG9vclNldHRpbmcS", - "Mi5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5HZXRGbG9vclNldHRpbmdS", - "ZXF1ZXN0GiguZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmxvb3JTZXR0", - "aW5nIqYB2kEEbmFtZYLT5JMCmAESLi92MS97bmFtZT1wcm9qZWN0cy8qL2xv", - "Y2F0aW9ucy8qL2Zsb29yU2V0dGluZ31aLxItL3YxL3tuYW1lPWZvbGRlcnMv", - "Ki9sb2NhdGlvbnMvKi9mbG9vclNldHRpbmd9WjUSMy92MS97bmFtZT1vcmdh", - "bml6YXRpb25zLyovbG9jYXRpb25zLyovZmxvb3JTZXR0aW5nfRKKAwoSVXBk", - "YXRlRmxvb3JTZXR0aW5nEjUuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEu", - "VXBkYXRlRmxvb3JTZXR0aW5nUmVxdWVzdBooLmdvb2dsZS5jbG91ZC5tb2Rl", - "bGFybW9yLnYxLkZsb29yU2V0dGluZyKSAtpBGWZsb29yX3NldHRpbmcsdXBk", - "YXRlX21hc2uC0+STAu8BMjwvdjEve2Zsb29yX3NldHRpbmcubmFtZT1wcm9q", - "ZWN0cy8qL2xvY2F0aW9ucy8qL2Zsb29yU2V0dGluZ306DWZsb29yX3NldHRp", - "bmdaTDI7L3YxL3tmbG9vcl9zZXR0aW5nLm5hbWU9Zm9sZGVycy8qL2xvY2F0", - "aW9ucy8qL2Zsb29yU2V0dGluZ306DWZsb29yX3NldHRpbmdaUjJBL3YxL3tm", - "bG9vcl9zZXR0aW5nLm5hbWU9b3JnYW5pemF0aW9ucy8qL2xvY2F0aW9ucy8q", - "L2Zsb29yU2V0dGluZ306DWZsb29yX3NldHRpbmcS0AEKElNhbml0aXplVXNl", - "clByb21wdBI1Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNhbml0aXpl", - "VXNlclByb21wdFJlcXVlc3QaNi5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52", - "MS5TYW5pdGl6ZVVzZXJQcm9tcHRSZXNwb25zZSJLgtPkkwJFIkAvdjEve25h", - "bWU9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi90ZW1wbGF0ZXMvKn06c2FuaXRp", - "emVVc2VyUHJvbXB0OgEqEtwBChVTYW5pdGl6ZU1vZGVsUmVzcG9uc2USOC5n", - "b29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5TYW5pdGl6ZU1vZGVsUmVzcG9u", - "c2VSZXF1ZXN0GjkuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuU2FuaXRp", - "emVNb2RlbFJlc3BvbnNlUmVzcG9uc2UiToLT5JMCSCJDL3YxL3tuYW1lPXBy", - "b2plY3RzLyovbG9jYXRpb25zLyovdGVtcGxhdGVzLyp9OnNhbml0aXplTW9k", - "ZWxSZXNwb25zZToBKhpNykEZbW9kZWxhcm1vci5nb29nbGVhcGlzLmNvbdJB", - "Lmh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvY2xvdWQtcGxhdGZv", - "cm1CqQEKHmNvbS5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MUILVjFtYWlu", - "UHJvdG9QAVo+Y2xvdWQuZ29vZ2xlLmNvbS9nby9tb2RlbGFybW9yL2FwaXYx", - "L21vZGVsYXJtb3JwYjttb2RlbGFybW9ycGKqAhpHb29nbGUuQ2xvdWQuTW9k", - "ZWxBcm1vci5WMcoCGkdvb2dsZVxDbG91ZFxNb2RlbEFybW9yXFYxYgZwcm90", - "bzM=")); + "b3IudjEuRmlsdGVyTWF0Y2hTdGF0ZUID4EEDIrgBCgtNZXNzYWdlSXRlbRJJ", + "CgxtZXNzYWdlX3R5cGUYASABKA4yMy5nb29nbGUuY2xvdWQubW9kZWxhcm1v", + "ci52MS5NZXNzYWdlSXRlbS5NZXNzYWdlVHlwZRIPCgdtZXNzYWdlGAIgASgJ", + "Ik0KC01lc3NhZ2VUeXBlEhwKGE1FU1NBR0VfVFlQRV9VTlNQRUNJRklFRBAA", + "EggKBElORk8QARILCgdXQVJOSU5HEAISCQoFRVJST1IQAyJDCglSYW5nZUlu", + "Zm8SEgoFc3RhcnQYASABKANIAIgBARIQCgNlbmQYAiABKANIAYgBAUIICgZf", + "c3RhcnRCBgoEX2VuZCpbChBGaWx0ZXJNYXRjaFN0YXRlEiIKHkZJTFRFUl9N", + "QVRDSF9TVEFURV9VTlNQRUNJRklFRBAAEhIKDk5PX01BVENIX0ZPVU5EEAES", + "DwoLTUFUQ0hfRk9VTkQQAipsChRGaWx0ZXJFeGVjdXRpb25TdGF0ZRImCiJG", + "SUxURVJfRVhFQ1VUSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASFQoRRVhFQ1VU", + "SU9OX1NVQ0NFU1MQARIVChFFWEVDVVRJT05fU0tJUFBFRBACKncKDVJhaUZp", + "bHRlclR5cGUSHwobUkFJX0ZJTFRFUl9UWVBFX1VOU1BFQ0lGSUVEEAASFQoR", + "U0VYVUFMTFlfRVhQTElDSVQQAhIPCgtIQVRFX1NQRUVDSBADEg4KCkhBUkFT", + "U01FTlQQBhINCglEQU5HRVJPVVMQESp5ChhEZXRlY3Rpb25Db25maWRlbmNl", + "TGV2ZWwSKgomREVURUNUSU9OX0NPTkZJREVOQ0VfTEVWRUxfVU5TUEVDSUZJ", + "RUQQABIRCg1MT1dfQU5EX0FCT1ZFEAESFAoQTUVESVVNX0FORF9BQk9WRRAC", + "EggKBEhJR0gQAyqKAQoUU2RwRmluZGluZ0xpa2VsaWhvb2QSJgoiU0RQX0ZJ", + "TkRJTkdfTElLRUxJSE9PRF9VTlNQRUNJRklFRBAAEhEKDVZFUllfVU5MSUtF", + "TFkQARIMCghVTkxJS0VMWRACEgwKCFBPU1NJQkxFEAMSCgoGTElLRUxZEAQS", + "DwoLVkVSWV9MSUtFTFkQBSpcChBJbnZvY2F0aW9uUmVzdWx0EiEKHUlOVk9D", + "QVRJT05fUkVTVUxUX1VOU1BFQ0lGSUVEEAASCwoHU1VDQ0VTUxABEgsKB1BB", + "UlRJQUwQAhILCgdGQUlMVVJFEAMqaQoNU3RyZWFtaW5nTW9kZRIeChpTVFJF", + "QU1JTkdfTU9ERV9VTlNQRUNJRklFRBAAEhsKF1NUUkVBTUlOR19NT0RFX0JV", + "RkZFUkVEEAESGwoXU1RSRUFNSU5HX01PREVfUkVBTFRJTUUQAjLxEgoKTW9k", + "ZWxBcm1vchK0AQoNTGlzdFRlbXBsYXRlcxIwLmdvb2dsZS5jbG91ZC5tb2Rl", + "bGFybW9yLnYxLkxpc3RUZW1wbGF0ZXNSZXF1ZXN0GjEuZ29vZ2xlLmNsb3Vk", + "Lm1vZGVsYXJtb3IudjEuTGlzdFRlbXBsYXRlc1Jlc3BvbnNlIj7aQQZwYXJl", + "bnSC0+STAi8SLS92MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRpb25zLyp9", + "L3RlbXBsYXRlcxKhAQoLR2V0VGVtcGxhdGUSLi5nb29nbGUuY2xvdWQubW9k", + "ZWxhcm1vci52MS5HZXRUZW1wbGF0ZVJlcXVlc3QaJC5nb29nbGUuY2xvdWQu", + "bW9kZWxhcm1vci52MS5UZW1wbGF0ZSI82kEEbmFtZYLT5JMCLxItL3YxL3tu", + "YW1lPXByb2plY3RzLyovbG9jYXRpb25zLyovdGVtcGxhdGVzLyp9EsgBCg5D", + "cmVhdGVUZW1wbGF0ZRIxLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLkNy", + "ZWF0ZVRlbXBsYXRlUmVxdWVzdBokLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9y", + "LnYxLlRlbXBsYXRlIl3aQRtwYXJlbnQsdGVtcGxhdGUsdGVtcGxhdGVfaWSC", + "0+STAjkiLS92MS97cGFyZW50PXByb2plY3RzLyovbG9jYXRpb25zLyp9L3Rl", + "bXBsYXRlczoIdGVtcGxhdGUSygEKDlVwZGF0ZVRlbXBsYXRlEjEuZ29vZ2xl", + "LmNsb3VkLm1vZGVsYXJtb3IudjEuVXBkYXRlVGVtcGxhdGVSZXF1ZXN0GiQu", + "Z29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuVGVtcGxhdGUiX9pBFHRlbXBs", + "YXRlLHVwZGF0ZV9tYXNrgtPkkwJCMjYvdjEve3RlbXBsYXRlLm5hbWU9cHJv", + "amVjdHMvKi9sb2NhdGlvbnMvKi90ZW1wbGF0ZXMvKn06CHRlbXBsYXRlEpkB", + "Cg5EZWxldGVUZW1wbGF0ZRIxLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYx", + "LkRlbGV0ZVRlbXBsYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0", + "eSI82kEEbmFtZYLT5JMCLyotL3YxL3tuYW1lPXByb2plY3RzLyovbG9jYXRp", + "b25zLyovdGVtcGxhdGVzLyp9EpgCCg9HZXRGbG9vclNldHRpbmcSMi5nb29n", + "bGUuY2xvdWQubW9kZWxhcm1vci52MS5HZXRGbG9vclNldHRpbmdSZXF1ZXN0", + "GiguZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuRmxvb3JTZXR0aW5nIqYB", + "2kEEbmFtZYLT5JMCmAESLi92MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9u", + "cy8qL2Zsb29yU2V0dGluZ31aLxItL3YxL3tuYW1lPWZvbGRlcnMvKi9sb2Nh", + "dGlvbnMvKi9mbG9vclNldHRpbmd9WjUSMy92MS97bmFtZT1vcmdhbml6YXRp", + "b25zLyovbG9jYXRpb25zLyovZmxvb3JTZXR0aW5nfRKKAwoSVXBkYXRlRmxv", + "b3JTZXR0aW5nEjUuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuVXBkYXRl", + "Rmxvb3JTZXR0aW5nUmVxdWVzdBooLmdvb2dsZS5jbG91ZC5tb2RlbGFybW9y", + "LnYxLkZsb29yU2V0dGluZyKSAtpBGWZsb29yX3NldHRpbmcsdXBkYXRlX21h", + "c2uC0+STAu8BMjwvdjEve2Zsb29yX3NldHRpbmcubmFtZT1wcm9qZWN0cy8q", + "L2xvY2F0aW9ucy8qL2Zsb29yU2V0dGluZ306DWZsb29yX3NldHRpbmdaTDI7", + "L3YxL3tmbG9vcl9zZXR0aW5nLm5hbWU9Zm9sZGVycy8qL2xvY2F0aW9ucy8q", + "L2Zsb29yU2V0dGluZ306DWZsb29yX3NldHRpbmdaUjJBL3YxL3tmbG9vcl9z", + "ZXR0aW5nLm5hbWU9b3JnYW5pemF0aW9ucy8qL2xvY2F0aW9ucy8qL2Zsb29y", + "U2V0dGluZ306DWZsb29yX3NldHRpbmcS0AEKElNhbml0aXplVXNlclByb21w", + "dBI1Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNhbml0aXplVXNlclBy", + "b21wdFJlcXVlc3QaNi5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5TYW5p", + "dGl6ZVVzZXJQcm9tcHRSZXNwb25zZSJLgtPkkwJFIkAvdjEve25hbWU9cHJv", + "amVjdHMvKi9sb2NhdGlvbnMvKi90ZW1wbGF0ZXMvKn06c2FuaXRpemVVc2Vy", + "UHJvbXB0OgEqEtwBChVTYW5pdGl6ZU1vZGVsUmVzcG9uc2USOC5nb29nbGUu", + "Y2xvdWQubW9kZWxhcm1vci52MS5TYW5pdGl6ZU1vZGVsUmVzcG9uc2VSZXF1", + "ZXN0GjkuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3IudjEuU2FuaXRpemVNb2Rl", + "bFJlc3BvbnNlUmVzcG9uc2UiToLT5JMCSCJDL3YxL3tuYW1lPXByb2plY3Rz", + "LyovbG9jYXRpb25zLyovdGVtcGxhdGVzLyp9OnNhbml0aXplTW9kZWxSZXNw", + "b25zZToBKhKPAQoYU3RyZWFtU2FuaXRpemVVc2VyUHJvbXB0EjUuZ29vZ2xl", + "LmNsb3VkLm1vZGVsYXJtb3IudjEuU2FuaXRpemVVc2VyUHJvbXB0UmVxdWVz", + "dBo2Lmdvb2dsZS5jbG91ZC5tb2RlbGFybW9yLnYxLlNhbml0aXplVXNlclBy", + "b21wdFJlc3BvbnNlIgAoATABEpgBChtTdHJlYW1TYW5pdGl6ZU1vZGVsUmVz", + "cG9uc2USOC5nb29nbGUuY2xvdWQubW9kZWxhcm1vci52MS5TYW5pdGl6ZU1v", + "ZGVsUmVzcG9uc2VSZXF1ZXN0GjkuZ29vZ2xlLmNsb3VkLm1vZGVsYXJtb3Iu", + "djEuU2FuaXRpemVNb2RlbFJlc3BvbnNlUmVzcG9uc2UiACgBMAEaTcpBGW1v", + "ZGVsYXJtb3IuZ29vZ2xlYXBpcy5jb23SQS5odHRwczovL3d3dy5nb29nbGVh", + "cGlzLmNvbS9hdXRoL2Nsb3VkLXBsYXRmb3JtQqkBCh5jb20uZ29vZ2xlLmNs", + "b3VkLm1vZGVsYXJtb3IudjFCC1YxbWFpblByb3RvUAFaPmNsb3VkLmdvb2ds", + "ZS5jb20vZ28vbW9kZWxhcm1vci9hcGl2MS9tb2RlbGFybW9ycGI7bW9kZWxh", + "cm1vcnBiqgIaR29vZ2xlLkNsb3VkLk1vZGVsQXJtb3IuVjHKAhpHb29nbGVc", + "Q2xvdWRcTW9kZWxBcm1vclxWMWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.FieldInfoReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Cloud.ModelArmor.V1.FilterMatchState), typeof(global::Google.Cloud.ModelArmor.V1.FilterExecutionState), typeof(global::Google.Cloud.ModelArmor.V1.RaiFilterType), typeof(global::Google.Cloud.ModelArmor.V1.DetectionConfidenceLevel), typeof(global::Google.Cloud.ModelArmor.V1.SdpFindingLikelihood), typeof(global::Google.Cloud.ModelArmor.V1.InvocationResult), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.FieldInfoReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Type.DateReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Cloud.ModelArmor.V1.FilterMatchState), typeof(global::Google.Cloud.ModelArmor.V1.FilterExecutionState), typeof(global::Google.Cloud.ModelArmor.V1.RaiFilterType), typeof(global::Google.Cloud.ModelArmor.V1.DetectionConfidenceLevel), typeof(global::Google.Cloud.ModelArmor.V1.SdpFindingLikelihood), typeof(global::Google.Cloud.ModelArmor.V1.InvocationResult), typeof(global::Google.Cloud.ModelArmor.V1.StreamingMode), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.Template), global::Google.Cloud.ModelArmor.V1.Template.Parser, new[]{ "Name", "CreateTime", "UpdateTime", "Labels", "FilterConfig", "TemplateMetadata" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.Template.Types.TemplateMetadata), global::Google.Cloud.ModelArmor.V1.Template.Types.TemplateMetadata.Parser, new[]{ "IgnorePartialInvocationFailures", "CustomPromptSafetyErrorCode", "CustomPromptSafetyErrorMessage", "CustomLlmResponseSafetyErrorCode", "CustomLlmResponseSafetyErrorMessage", "LogTemplateOperations", "LogSanitizeOperations", "EnforcementType", "MultiLanguageDetection" }, null, new[]{ typeof(global::Google.Cloud.ModelArmor.V1.Template.Types.TemplateMetadata.Types.EnforcementType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.Template.Types.TemplateMetadata.Types.MultiLanguageDetection), global::Google.Cloud.ModelArmor.V1.Template.Types.TemplateMetadata.Types.MultiLanguageDetection.Parser, new[]{ "EnableMultiLanguageDetection" }, null, null, null, null)}), null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.FloorSetting), global::Google.Cloud.ModelArmor.V1.FloorSetting.Parser, new[]{ "Name", "CreateTime", "UpdateTime", "FilterConfig", "EnableFloorSettingEnforcement", "IntegratedServices", "AiPlatformFloorSetting", "FloorSettingMetadata" }, new[]{ "EnableFloorSettingEnforcement", "AiPlatformFloorSetting" }, new[]{ typeof(global::Google.Cloud.ModelArmor.V1.FloorSetting.Types.IntegratedService) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.FloorSetting.Types.FloorSettingMetadata), global::Google.Cloud.ModelArmor.V1.FloorSetting.Types.FloorSettingMetadata.Parser, new[]{ "MultiLanguageDetection" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.FloorSetting.Types.FloorSettingMetadata.Types.MultiLanguageDetection), global::Google.Cloud.ModelArmor.V1.FloorSetting.Types.FloorSettingMetadata.Types.MultiLanguageDetection.Parser, new[]{ "EnableMultiLanguageDetection" }, null, null, null, null)})}), @@ -384,11 +399,11 @@ static ServiceReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SdpFilterSettings), global::Google.Cloud.ModelArmor.V1.SdpFilterSettings.Parser, new[]{ "BasicConfig", "AdvancedConfig" }, new[]{ "SdpConfiguration" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SdpBasicConfig), global::Google.Cloud.ModelArmor.V1.SdpBasicConfig.Parser, new[]{ "FilterEnforcement" }, null, new[]{ typeof(global::Google.Cloud.ModelArmor.V1.SdpBasicConfig.Types.SdpBasicConfigEnforcement) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SdpAdvancedConfig), global::Google.Cloud.ModelArmor.V1.SdpAdvancedConfig.Parser, new[]{ "InspectTemplate", "DeidentifyTemplate" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizeUserPromptRequest), global::Google.Cloud.ModelArmor.V1.SanitizeUserPromptRequest.Parser, new[]{ "Name", "UserPromptData", "MultiLanguageDetectionMetadata" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizeModelResponseRequest), global::Google.Cloud.ModelArmor.V1.SanitizeModelResponseRequest.Parser, new[]{ "Name", "ModelResponseData", "UserPrompt", "MultiLanguageDetectionMetadata" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizeUserPromptRequest), global::Google.Cloud.ModelArmor.V1.SanitizeUserPromptRequest.Parser, new[]{ "Name", "UserPromptData", "MultiLanguageDetectionMetadata", "StreamingMode" }, new[]{ "StreamingMode" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizeModelResponseRequest), global::Google.Cloud.ModelArmor.V1.SanitizeModelResponseRequest.Parser, new[]{ "Name", "ModelResponseData", "UserPrompt", "MultiLanguageDetectionMetadata", "StreamingMode" }, new[]{ "StreamingMode" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizeUserPromptResponse), global::Google.Cloud.ModelArmor.V1.SanitizeUserPromptResponse.Parser, new[]{ "SanitizationResult" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizeModelResponseResponse), global::Google.Cloud.ModelArmor.V1.SanitizeModelResponseResponse.Parser, new[]{ "SanitizationResult" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizationResult), global::Google.Cloud.ModelArmor.V1.SanitizationResult.Parser, new[]{ "FilterMatchState", "FilterResults", "InvocationResult", "SanitizationMetadata" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizationResult.Types.SanitizationMetadata), global::Google.Cloud.ModelArmor.V1.SanitizationResult.Types.SanitizationMetadata.Parser, new[]{ "ErrorCode", "ErrorMessage", "IgnorePartialInvocationFailures" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizationResult), global::Google.Cloud.ModelArmor.V1.SanitizationResult.Parser, new[]{ "FilterMatchState", "FilterResults", "InvocationResult", "SanitizationMetadata" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.SanitizationResult.Types.SanitizationMetadata), global::Google.Cloud.ModelArmor.V1.SanitizationResult.Types.SanitizationMetadata.Parser, new[]{ "ErrorCode", "ErrorMessage", "IgnorePartialInvocationFailures", "StreamChunkProcessed" }, null, null, null, null), null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.MultiLanguageDetectionMetadata), global::Google.Cloud.ModelArmor.V1.MultiLanguageDetectionMetadata.Parser, new[]{ "SourceLanguage", "EnableMultiLanguageDetection" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.ModelArmor.V1.FilterResult), global::Google.Cloud.ModelArmor.V1.FilterResult.Parser, new[]{ "RaiFilterResult", "SdpFilterResult", "PiAndJailbreakFilterResult", "MaliciousUriFilterResult", "CsamFilterFilterResult", "VirusScanFilterResult" }, new[]{ "FilterResult" }, null, null, null), @@ -554,6 +569,24 @@ public enum InvocationResult { [pbr::OriginalName("FAILURE")] Failure = 3, } + /// + /// Streaming Mode for Sanitize* API. + /// + public enum StreamingMode { + /// + /// Default value. + /// + [pbr::OriginalName("STREAMING_MODE_UNSPECIFIED")] Unspecified = 0, + /// + /// Buffered Streaming mode. + /// + [pbr::OriginalName("STREAMING_MODE_BUFFERED")] Buffered = 1, + /// + /// Real Time Streaming mode. + /// + [pbr::OriginalName("STREAMING_MODE_REALTIME")] Realtime = 2, + } + #endregion #region Messages @@ -7448,6 +7481,7 @@ public sealed partial class SanitizeUserPromptRequest : pb::IMessage _parser = new pb::MessageParser(() => new SanitizeUserPromptRequest()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pb::MessageParser Parser { get { return _parser; } } @@ -7475,9 +7509,11 @@ public SanitizeUserPromptRequest() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public SanitizeUserPromptRequest(SanitizeUserPromptRequest other) : this() { + _hasBits0 = other._hasBits0; name_ = other.name_; userPromptData_ = other.userPromptData_ != null ? other.userPromptData_.Clone() : null; multiLanguageDetectionMetadata_ = other.multiLanguageDetectionMetadata_ != null ? other.multiLanguageDetectionMetadata_.Clone() : null; + streamingMode_ = other.streamingMode_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7533,6 +7569,36 @@ public string Name { } } + /// Field number for the "streaming_mode" field. + public const int StreamingModeFieldNumber = 7; + private readonly static global::Google.Cloud.ModelArmor.V1.StreamingMode StreamingModeDefaultValue = global::Google.Cloud.ModelArmor.V1.StreamingMode.Unspecified; + + private global::Google.Cloud.ModelArmor.V1.StreamingMode streamingMode_; + /// + /// Optional. Streaming Mode for StreamSanitize* API. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Cloud.ModelArmor.V1.StreamingMode StreamingMode { + get { if ((_hasBits0 & 1) != 0) { return streamingMode_; } else { return StreamingModeDefaultValue; } } + set { + _hasBits0 |= 1; + streamingMode_ = value; + } + } + /// Gets whether the "streaming_mode" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasStreamingMode { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "streaming_mode" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearStreamingMode() { + _hasBits0 &= ~1; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7551,6 +7617,7 @@ public bool Equals(SanitizeUserPromptRequest other) { if (Name != other.Name) return false; if (!object.Equals(UserPromptData, other.UserPromptData)) return false; if (!object.Equals(MultiLanguageDetectionMetadata, other.MultiLanguageDetectionMetadata)) return false; + if (StreamingMode != other.StreamingMode) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7561,6 +7628,7 @@ public override int GetHashCode() { if (Name.Length != 0) hash ^= Name.GetHashCode(); if (userPromptData_ != null) hash ^= UserPromptData.GetHashCode(); if (multiLanguageDetectionMetadata_ != null) hash ^= MultiLanguageDetectionMetadata.GetHashCode(); + if (HasStreamingMode) hash ^= StreamingMode.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7591,6 +7659,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(50); output.WriteMessage(MultiLanguageDetectionMetadata); } + if (HasStreamingMode) { + output.WriteRawTag(56); + output.WriteEnum((int) StreamingMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7613,6 +7685,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(50); output.WriteMessage(MultiLanguageDetectionMetadata); } + if (HasStreamingMode) { + output.WriteRawTag(56); + output.WriteEnum((int) StreamingMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7632,6 +7708,9 @@ public int CalculateSize() { if (multiLanguageDetectionMetadata_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(MultiLanguageDetectionMetadata); } + if (HasStreamingMode) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) StreamingMode); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7659,6 +7738,9 @@ public void MergeFrom(SanitizeUserPromptRequest other) { } MultiLanguageDetectionMetadata.MergeFrom(other.MultiLanguageDetectionMetadata); } + if (other.HasStreamingMode) { + StreamingMode = other.StreamingMode; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7696,6 +7778,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(MultiLanguageDetectionMetadata); break; } + case 56: { + StreamingMode = (global::Google.Cloud.ModelArmor.V1.StreamingMode) input.ReadEnum(); + break; + } } } #endif @@ -7733,6 +7819,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(MultiLanguageDetectionMetadata); break; } + case 56: { + StreamingMode = (global::Google.Cloud.ModelArmor.V1.StreamingMode) input.ReadEnum(); + break; + } } } } @@ -7751,6 +7841,7 @@ public sealed partial class SanitizeModelResponseRequest : pb::IMessage _parser = new pb::MessageParser(() => new SanitizeModelResponseRequest()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pb::MessageParser Parser { get { return _parser; } } @@ -7778,10 +7869,12 @@ public SanitizeModelResponseRequest() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public SanitizeModelResponseRequest(SanitizeModelResponseRequest other) : this() { + _hasBits0 = other._hasBits0; name_ = other.name_; modelResponseData_ = other.modelResponseData_ != null ? other.modelResponseData_.Clone() : null; userPrompt_ = other.userPrompt_; multiLanguageDetectionMetadata_ = other.multiLanguageDetectionMetadata_ != null ? other.multiLanguageDetectionMetadata_.Clone() : null; + streamingMode_ = other.streamingMode_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7852,6 +7945,36 @@ public string UserPrompt { } } + /// Field number for the "streaming_mode" field. + public const int StreamingModeFieldNumber = 8; + private readonly static global::Google.Cloud.ModelArmor.V1.StreamingMode StreamingModeDefaultValue = global::Google.Cloud.ModelArmor.V1.StreamingMode.Unspecified; + + private global::Google.Cloud.ModelArmor.V1.StreamingMode streamingMode_; + /// + /// Optional. Streaming Mode for StreamSanitize* API. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Cloud.ModelArmor.V1.StreamingMode StreamingMode { + get { if ((_hasBits0 & 1) != 0) { return streamingMode_; } else { return StreamingModeDefaultValue; } } + set { + _hasBits0 |= 1; + streamingMode_ = value; + } + } + /// Gets whether the "streaming_mode" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasStreamingMode { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "streaming_mode" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearStreamingMode() { + _hasBits0 &= ~1; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7871,6 +7994,7 @@ public bool Equals(SanitizeModelResponseRequest other) { if (!object.Equals(ModelResponseData, other.ModelResponseData)) return false; if (UserPrompt != other.UserPrompt) return false; if (!object.Equals(MultiLanguageDetectionMetadata, other.MultiLanguageDetectionMetadata)) return false; + if (StreamingMode != other.StreamingMode) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7882,6 +8006,7 @@ public override int GetHashCode() { if (modelResponseData_ != null) hash ^= ModelResponseData.GetHashCode(); if (UserPrompt.Length != 0) hash ^= UserPrompt.GetHashCode(); if (multiLanguageDetectionMetadata_ != null) hash ^= MultiLanguageDetectionMetadata.GetHashCode(); + if (HasStreamingMode) hash ^= StreamingMode.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7916,6 +8041,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(MultiLanguageDetectionMetadata); } + if (HasStreamingMode) { + output.WriteRawTag(64); + output.WriteEnum((int) StreamingMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7942,6 +8071,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(MultiLanguageDetectionMetadata); } + if (HasStreamingMode) { + output.WriteRawTag(64); + output.WriteEnum((int) StreamingMode); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7964,6 +8097,9 @@ public int CalculateSize() { if (multiLanguageDetectionMetadata_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(MultiLanguageDetectionMetadata); } + if (HasStreamingMode) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) StreamingMode); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7994,6 +8130,9 @@ public void MergeFrom(SanitizeModelResponseRequest other) { } MultiLanguageDetectionMetadata.MergeFrom(other.MultiLanguageDetectionMetadata); } + if (other.HasStreamingMode) { + StreamingMode = other.StreamingMode; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -8035,6 +8174,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(MultiLanguageDetectionMetadata); break; } + case 64: { + StreamingMode = (global::Google.Cloud.ModelArmor.V1.StreamingMode) input.ReadEnum(); + break; + } } } #endif @@ -8076,6 +8219,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(MultiLanguageDetectionMetadata); break; } + case 64: { + StreamingMode = (global::Google.Cloud.ModelArmor.V1.StreamingMode) input.ReadEnum(); + break; + } } } } @@ -8886,6 +9033,7 @@ public SanitizationMetadata(SanitizationMetadata other) : this() { errorCode_ = other.errorCode_; errorMessage_ = other.errorMessage_; ignorePartialInvocationFailures_ = other.ignorePartialInvocationFailures_; + streamChunkProcessed_ = other.streamChunkProcessed_ != null ? other.streamChunkProcessed_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -8941,6 +9089,21 @@ public bool IgnorePartialInvocationFailures { } } + /// Field number for the "stream_chunk_processed" field. + public const int StreamChunkProcessedFieldNumber = 4; + private global::Google.Cloud.ModelArmor.V1.DataItem streamChunkProcessed_; + /// + /// Output only. The stream chunk processed by the Sanitization service. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Cloud.ModelArmor.V1.DataItem StreamChunkProcessed { + get { return streamChunkProcessed_; } + set { + streamChunkProcessed_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -8959,6 +9122,7 @@ public bool Equals(SanitizationMetadata other) { if (ErrorCode != other.ErrorCode) return false; if (ErrorMessage != other.ErrorMessage) return false; if (IgnorePartialInvocationFailures != other.IgnorePartialInvocationFailures) return false; + if (!object.Equals(StreamChunkProcessed, other.StreamChunkProcessed)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -8969,6 +9133,7 @@ public override int GetHashCode() { if (ErrorCode != 0L) hash ^= ErrorCode.GetHashCode(); if (ErrorMessage.Length != 0) hash ^= ErrorMessage.GetHashCode(); if (IgnorePartialInvocationFailures != false) hash ^= IgnorePartialInvocationFailures.GetHashCode(); + if (streamChunkProcessed_ != null) hash ^= StreamChunkProcessed.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -8999,6 +9164,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteBool(IgnorePartialInvocationFailures); } + if (streamChunkProcessed_ != null) { + output.WriteRawTag(34); + output.WriteMessage(StreamChunkProcessed); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9021,6 +9190,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteBool(IgnorePartialInvocationFailures); } + if (streamChunkProcessed_ != null) { + output.WriteRawTag(34); + output.WriteMessage(StreamChunkProcessed); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9040,6 +9213,9 @@ public int CalculateSize() { if (IgnorePartialInvocationFailures != false) { size += 1 + 1; } + if (streamChunkProcessed_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(StreamChunkProcessed); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -9061,6 +9237,12 @@ public void MergeFrom(SanitizationMetadata other) { if (other.IgnorePartialInvocationFailures != false) { IgnorePartialInvocationFailures = other.IgnorePartialInvocationFailures; } + if (other.streamChunkProcessed_ != null) { + if (streamChunkProcessed_ == null) { + StreamChunkProcessed = new global::Google.Cloud.ModelArmor.V1.DataItem(); + } + StreamChunkProcessed.MergeFrom(other.StreamChunkProcessed); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -9092,6 +9274,13 @@ public void MergeFrom(pb::CodedInputStream input) { IgnorePartialInvocationFailures = input.ReadBool(); break; } + case 34: { + if (streamChunkProcessed_ == null) { + StreamChunkProcessed = new global::Google.Cloud.ModelArmor.V1.DataItem(); + } + input.ReadMessage(StreamChunkProcessed); + break; + } } } #endif @@ -9123,6 +9312,13 @@ public void MergeFrom(pb::CodedInputStream input) { IgnorePartialInvocationFailures = input.ReadBool(); break; } + case 34: { + if (streamChunkProcessed_ == null) { + StreamChunkProcessed = new global::Google.Cloud.ModelArmor.V1.DataItem(); + } + input.ReadMessage(StreamChunkProcessed); + break; + } } } } diff --git a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ServiceGrpc.g.cs b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ServiceGrpc.g.cs index 825c4ce6f41c..d5f998046159 100644 --- a/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ServiceGrpc.g.cs +++ b/apis/Google.Cloud.ModelArmor.V1/Google.Cloud.ModelArmor.V1/ServiceGrpc.g.cs @@ -3,7 +3,7 @@ // source: google/cloud/modelarmor/v1/service.proto // // Original file comments: -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -166,6 +166,22 @@ static T __Helper_DeserializeMessage(grpc::DeserializationContext context, gl __Marshaller_google_cloud_modelarmor_v1_SanitizeModelResponseRequest, __Marshaller_google_cloud_modelarmor_v1_SanitizeModelResponseResponse); + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + static readonly grpc::Method __Method_StreamSanitizeUserPrompt = new grpc::Method( + grpc::MethodType.DuplexStreaming, + __ServiceName, + "StreamSanitizeUserPrompt", + __Marshaller_google_cloud_modelarmor_v1_SanitizeUserPromptRequest, + __Marshaller_google_cloud_modelarmor_v1_SanitizeUserPromptResponse); + + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + static readonly grpc::Method __Method_StreamSanitizeModelResponse = new grpc::Method( + grpc::MethodType.DuplexStreaming, + __ServiceName, + "StreamSanitizeModelResponse", + __Marshaller_google_cloud_modelarmor_v1_SanitizeModelResponseRequest, + __Marshaller_google_cloud_modelarmor_v1_SanitizeModelResponseResponse); + /// Service descriptor public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor { @@ -284,6 +300,32 @@ public abstract partial class ModelArmorBase throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); } + /// + /// Streaming version of Sanitize User Prompt. + /// + /// Used for reading requests from the client. + /// Used for sending responses back to the client. + /// The context of the server-side call handler being invoked. + /// A task indicating completion of the handler. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual global::System.Threading.Tasks.Task StreamSanitizeUserPrompt(grpc::IAsyncStreamReader requestStream, grpc::IServerStreamWriter responseStream, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + + /// + /// Streaming version of Sanitizes Model Response. + /// + /// Used for reading requests from the client. + /// Used for sending responses back to the client. + /// The context of the server-side call handler being invoked. + /// A task indicating completion of the handler. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual global::System.Threading.Tasks.Task StreamSanitizeModelResponse(grpc::IAsyncStreamReader requestStream, grpc::IServerStreamWriter responseStream, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + } /// Client for ModelArmor @@ -745,6 +787,50 @@ protected ModelArmorClient(ClientBaseConfiguration configuration) : base(configu { return CallInvoker.AsyncUnaryCall(__Method_SanitizeModelResponse, null, options, request); } + /// + /// Streaming version of Sanitize User Prompt. + /// + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual grpc::AsyncDuplexStreamingCall StreamSanitizeUserPrompt(grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return StreamSanitizeUserPrompt(new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Streaming version of Sanitize User Prompt. + /// + /// The options for the call. + /// The call object. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual grpc::AsyncDuplexStreamingCall StreamSanitizeUserPrompt(grpc::CallOptions options) + { + return CallInvoker.AsyncDuplexStreamingCall(__Method_StreamSanitizeUserPrompt, null, options); + } + /// + /// Streaming version of Sanitizes Model Response. + /// + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual grpc::AsyncDuplexStreamingCall StreamSanitizeModelResponse(grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return StreamSanitizeModelResponse(new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Streaming version of Sanitizes Model Response. + /// + /// The options for the call. + /// The call object. + [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] + public virtual grpc::AsyncDuplexStreamingCall StreamSanitizeModelResponse(grpc::CallOptions options) + { + return CallInvoker.AsyncDuplexStreamingCall(__Method_StreamSanitizeModelResponse, null, options); + } /// Creates a new instance of client from given ClientBaseConfiguration. [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)] protected override ModelArmorClient NewInstance(ClientBaseConfiguration configuration) @@ -767,7 +853,9 @@ protected override ModelArmorClient NewInstance(ClientBaseConfiguration configur .AddMethod(__Method_GetFloorSetting, serviceImpl.GetFloorSetting) .AddMethod(__Method_UpdateFloorSetting, serviceImpl.UpdateFloorSetting) .AddMethod(__Method_SanitizeUserPrompt, serviceImpl.SanitizeUserPrompt) - .AddMethod(__Method_SanitizeModelResponse, serviceImpl.SanitizeModelResponse).Build(); + .AddMethod(__Method_SanitizeModelResponse, serviceImpl.SanitizeModelResponse) + .AddMethod(__Method_StreamSanitizeUserPrompt, serviceImpl.StreamSanitizeUserPrompt) + .AddMethod(__Method_StreamSanitizeModelResponse, serviceImpl.StreamSanitizeModelResponse).Build(); } /// Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. @@ -786,6 +874,8 @@ public static void BindService(grpc::ServiceBinderBase serviceBinder, ModelArmor serviceBinder.AddMethod(__Method_UpdateFloorSetting, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.UpdateFloorSetting)); serviceBinder.AddMethod(__Method_SanitizeUserPrompt, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.SanitizeUserPrompt)); serviceBinder.AddMethod(__Method_SanitizeModelResponse, serviceImpl == null ? null : new grpc::UnaryServerMethod(serviceImpl.SanitizeModelResponse)); + serviceBinder.AddMethod(__Method_StreamSanitizeUserPrompt, serviceImpl == null ? null : new grpc::DuplexStreamingServerMethod(serviceImpl.StreamSanitizeUserPrompt)); + serviceBinder.AddMethod(__Method_StreamSanitizeModelResponse, serviceImpl == null ? null : new grpc::DuplexStreamingServerMethod(serviceImpl.StreamSanitizeModelResponse)); } } diff --git a/apis/Google.Cloud.ModelArmor.V1/gapic_metadata.json b/apis/Google.Cloud.ModelArmor.V1/gapic_metadata.json index 11c3c3734aa3..892343af9800 100644 --- a/apis/Google.Cloud.ModelArmor.V1/gapic_metadata.json +++ b/apis/Google.Cloud.ModelArmor.V1/gapic_metadata.json @@ -52,6 +52,18 @@ "SanitizeUserPromptAsync" ] }, + "StreamSanitizeModelResponse": { + "methods": [ + "StreamSanitizeModelResponse", + "StreamSanitizeModelResponseAsync" + ] + }, + "StreamSanitizeUserPrompt": { + "methods": [ + "StreamSanitizeUserPrompt", + "StreamSanitizeUserPromptAsync" + ] + }, "UpdateFloorSetting": { "methods": [ "UpdateFloorSetting", diff --git a/generator-input/pipeline-state.json b/generator-input/pipeline-state.json index a1904a542743..a3848188356a 100644 --- a/generator-input/pipeline-state.json +++ b/generator-input/pipeline-state.json @@ -4284,7 +4284,7 @@ "generationAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseAutomationLevel": "AUTOMATION_LEVEL_AUTOMATIC", "releaseTimestamp": "2025-11-05T22:17:29.452870924Z", - "lastGeneratedCommit": "16b4737e7b870914e0c384b87f0e50ed388aa225", + "lastGeneratedCommit": "591ae025072c1608bd7b38039feeb296f640605a", "lastReleasedCommit": "36533b09a6b383f3c30d13c3c26092154ecf5388", "apiPaths": [ "google/cloud/modelarmor/v1"