|  | @@ -70,31 +70,40 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |              "A2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEaZwoRUnBjc0J5TWV0aG9k",
 | 
	
		
			
				|  |  |              "RW50cnkSCwoDa2V5GAEgASgJEkEKBXZhbHVlGAIgASgLMjIuZ3JwYy50ZXN0",
 | 
	
		
			
				|  |  |              "aW5nLkxvYWRCYWxhbmNlclN0YXRzUmVzcG9uc2UuUnBjc0J5UGVlcjoCOAEi",
 | 
	
		
			
				|  |  | -            "JQojTG9hZEJhbGFuY2VyQWNjdW11bGF0ZWRTdGF0c1JlcXVlc3QiwgQKJExv",
 | 
	
		
			
				|  |  | -            "YWRCYWxhbmNlckFjY3VtdWxhdGVkU3RhdHNSZXNwb25zZRJyChpudW1fcnBj",
 | 
	
		
			
				|  |  | +            "JQojTG9hZEJhbGFuY2VyQWNjdW11bGF0ZWRTdGF0c1JlcXVlc3Qi2AcKJExv",
 | 
	
		
			
				|  |  | +            "YWRCYWxhbmNlckFjY3VtdWxhdGVkU3RhdHNSZXNwb25zZRJ2ChpudW1fcnBj",
 | 
	
		
			
				|  |  |              "c19zdGFydGVkX2J5X21ldGhvZBgBIAMoCzJOLmdycGMudGVzdGluZy5Mb2Fk",
 | 
	
		
			
				|  |  |              "QmFsYW5jZXJBY2N1bXVsYXRlZFN0YXRzUmVzcG9uc2UuTnVtUnBjc1N0YXJ0",
 | 
	
		
			
				|  |  | -            "ZWRCeU1ldGhvZEVudHJ5EnYKHG51bV9ycGNzX3N1Y2NlZWRlZF9ieV9tZXRo",
 | 
	
		
			
				|  |  | -            "b2QYAiADKAsyUC5ncnBjLnRlc3RpbmcuTG9hZEJhbGFuY2VyQWNjdW11bGF0",
 | 
	
		
			
				|  |  | -            "ZWRTdGF0c1Jlc3BvbnNlLk51bVJwY3NTdWNjZWVkZWRCeU1ldGhvZEVudHJ5",
 | 
	
		
			
				|  |  | -            "EnAKGW51bV9ycGNzX2ZhaWxlZF9ieV9tZXRob2QYAyADKAsyTS5ncnBjLnRl",
 | 
	
		
			
				|  |  | -            "c3RpbmcuTG9hZEJhbGFuY2VyQWNjdW11bGF0ZWRTdGF0c1Jlc3BvbnNlLk51",
 | 
	
		
			
				|  |  | -            "bVJwY3NGYWlsZWRCeU1ldGhvZEVudHJ5Gj0KG051bVJwY3NTdGFydGVkQnlN",
 | 
	
		
			
				|  |  | -            "ZXRob2RFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBGj8K",
 | 
	
		
			
				|  |  | -            "HU51bVJwY3NTdWNjZWVkZWRCeU1ldGhvZEVudHJ5EgsKA2tleRgBIAEoCRIN",
 | 
	
		
			
				|  |  | -            "CgV2YWx1ZRgCIAEoBToCOAEaPAoaTnVtUnBjc0ZhaWxlZEJ5TWV0aG9kRW50",
 | 
	
		
			
				|  |  | -            "cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASKlAgoWQ2xpZW50",
 | 
	
		
			
				|  |  | -            "Q29uZmlndXJlUmVxdWVzdBI7CgV0eXBlcxgBIAMoDjIsLmdycGMudGVzdGlu",
 | 
	
		
			
				|  |  | -            "Zy5DbGllbnRDb25maWd1cmVSZXF1ZXN0LlJwY1R5cGUSPwoIbWV0YWRhdGEY",
 | 
	
		
			
				|  |  | -            "AiADKAsyLS5ncnBjLnRlc3RpbmcuQ2xpZW50Q29uZmlndXJlUmVxdWVzdC5N",
 | 
	
		
			
				|  |  | -            "ZXRhZGF0YRpiCghNZXRhZGF0YRI6CgR0eXBlGAEgASgOMiwuZ3JwYy50ZXN0",
 | 
	
		
			
				|  |  | -            "aW5nLkNsaWVudENvbmZpZ3VyZVJlcXVlc3QuUnBjVHlwZRILCgNrZXkYAiAB",
 | 
	
		
			
				|  |  | -            "KAkSDQoFdmFsdWUYAyABKAkiKQoHUnBjVHlwZRIOCgpFTVBUWV9DQUxMEAAS",
 | 
	
		
			
				|  |  | -            "DgoKVU5BUllfQ0FMTBABIhkKF0NsaWVudENvbmZpZ3VyZVJlc3BvbnNlKh8K",
 | 
	
		
			
				|  |  | -            "C1BheWxvYWRUeXBlEhAKDENPTVBSRVNTQUJMRRAAKm8KD0dycGNsYlJvdXRl",
 | 
	
		
			
				|  |  | -            "VHlwZRIdChlHUlBDTEJfUk9VVEVfVFlQRV9VTktOT1dOEAASHgoaR1JQQ0xC",
 | 
	
		
			
				|  |  | -            "X1JPVVRFX1RZUEVfRkFMTEJBQ0sQARIdChlHUlBDTEJfUk9VVEVfVFlQRV9C",
 | 
	
		
			
				|  |  | -            "QUNLRU5EEAJiBnByb3RvMw=="));
 | 
	
		
			
				|  |  | +            "ZWRCeU1ldGhvZEVudHJ5QgIYARJ6ChxudW1fcnBjc19zdWNjZWVkZWRfYnlf",
 | 
	
		
			
				|  |  | +            "bWV0aG9kGAIgAygLMlAuZ3JwYy50ZXN0aW5nLkxvYWRCYWxhbmNlckFjY3Vt",
 | 
	
		
			
				|  |  | +            "dWxhdGVkU3RhdHNSZXNwb25zZS5OdW1ScGNzU3VjY2VlZGVkQnlNZXRob2RF",
 | 
	
		
			
				|  |  | +            "bnRyeUICGAESdAoZbnVtX3JwY3NfZmFpbGVkX2J5X21ldGhvZBgDIAMoCzJN",
 | 
	
		
			
				|  |  | +            "LmdycGMudGVzdGluZy5Mb2FkQmFsYW5jZXJBY2N1bXVsYXRlZFN0YXRzUmVz",
 | 
	
		
			
				|  |  | +            "cG9uc2UuTnVtUnBjc0ZhaWxlZEJ5TWV0aG9kRW50cnlCAhgBEmAKEHN0YXRz",
 | 
	
		
			
				|  |  | +            "X3Blcl9tZXRob2QYBCADKAsyRi5ncnBjLnRlc3RpbmcuTG9hZEJhbGFuY2Vy",
 | 
	
		
			
				|  |  | +            "QWNjdW11bGF0ZWRTdGF0c1Jlc3BvbnNlLlN0YXRzUGVyTWV0aG9kRW50cnka",
 | 
	
		
			
				|  |  | +            "PQobTnVtUnBjc1N0YXJ0ZWRCeU1ldGhvZEVudHJ5EgsKA2tleRgBIAEoCRIN",
 | 
	
		
			
				|  |  | +            "CgV2YWx1ZRgCIAEoBToCOAEaPwodTnVtUnBjc1N1Y2NlZWRlZEJ5TWV0aG9k",
 | 
	
		
			
				|  |  | +            "RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ARo8ChpOdW1S",
 | 
	
		
			
				|  |  | +            "cGNzRmFpbGVkQnlNZXRob2RFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUY",
 | 
	
		
			
				|  |  | +            "AiABKAU6AjgBGq4BCgtNZXRob2RTdGF0cxIUCgxycGNzX3N0YXJ0ZWQYASAB",
 | 
	
		
			
				|  |  | +            "KAUSWgoGcmVzdWx0GAIgAygLMkouZ3JwYy50ZXN0aW5nLkxvYWRCYWxhbmNl",
 | 
	
		
			
				|  |  | +            "ckFjY3VtdWxhdGVkU3RhdHNSZXNwb25zZS5NZXRob2RTdGF0cy5SZXN1bHRF",
 | 
	
		
			
				|  |  | +            "bnRyeRotCgtSZXN1bHRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiAB",
 | 
	
		
			
				|  |  | +            "KAU6AjgBGnUKE1N0YXRzUGVyTWV0aG9kRW50cnkSCwoDa2V5GAEgASgJEk0K",
 | 
	
		
			
				|  |  | +            "BXZhbHVlGAIgASgLMj4uZ3JwYy50ZXN0aW5nLkxvYWRCYWxhbmNlckFjY3Vt",
 | 
	
		
			
				|  |  | +            "dWxhdGVkU3RhdHNSZXNwb25zZS5NZXRob2RTdGF0czoCOAEiugIKFkNsaWVu",
 | 
	
		
			
				|  |  | +            "dENvbmZpZ3VyZVJlcXVlc3QSOwoFdHlwZXMYASADKA4yLC5ncnBjLnRlc3Rp",
 | 
	
		
			
				|  |  | +            "bmcuQ2xpZW50Q29uZmlndXJlUmVxdWVzdC5ScGNUeXBlEj8KCG1ldGFkYXRh",
 | 
	
		
			
				|  |  | +            "GAIgAygLMi0uZ3JwYy50ZXN0aW5nLkNsaWVudENvbmZpZ3VyZVJlcXVlc3Qu",
 | 
	
		
			
				|  |  | +            "TWV0YWRhdGESEwoLdGltZW91dF9zZWMYAyABKAUaYgoITWV0YWRhdGESOgoE",
 | 
	
		
			
				|  |  | +            "dHlwZRgBIAEoDjIsLmdycGMudGVzdGluZy5DbGllbnRDb25maWd1cmVSZXF1",
 | 
	
		
			
				|  |  | +            "ZXN0LlJwY1R5cGUSCwoDa2V5GAIgASgJEg0KBXZhbHVlGAMgASgJIikKB1Jw",
 | 
	
		
			
				|  |  | +            "Y1R5cGUSDgoKRU1QVFlfQ0FMTBAAEg4KClVOQVJZX0NBTEwQASIZChdDbGll",
 | 
	
		
			
				|  |  | +            "bnRDb25maWd1cmVSZXNwb25zZSofCgtQYXlsb2FkVHlwZRIQCgxDT01QUkVT",
 | 
	
		
			
				|  |  | +            "U0FCTEUQACpvCg9HcnBjbGJSb3V0ZVR5cGUSHQoZR1JQQ0xCX1JPVVRFX1RZ",
 | 
	
		
			
				|  |  | +            "UEVfVU5LTk9XThAAEh4KGkdSUENMQl9ST1VURV9UWVBFX0ZBTExCQUNLEAES",
 | 
	
		
			
				|  |  | +            "HQoZR1JQQ0xCX1JPVVRFX1RZUEVfQkFDS0VORBACYgZwcm90bzM="));
 | 
	
		
			
				|  |  |        descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
 | 
	
		
			
				|  |  |            new pbr::FileDescriptor[] { },
 | 
	
		
			
				|  |  |            new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Grpc.Testing.PayloadType), typeof(global::Grpc.Testing.GrpclbRouteType), }, null, new pbr::GeneratedClrTypeInfo[] {
 | 
	
	
		
			
				|  | @@ -114,8 +123,9 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |              new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.LoadBalancerStatsResponse), global::Grpc.Testing.LoadBalancerStatsResponse.Parser, new[]{ "RpcsByPeer", "NumFailures", "RpcsByMethod" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.LoadBalancerStatsResponse.Types.RpcsByPeer), global::Grpc.Testing.LoadBalancerStatsResponse.Types.RpcsByPeer.Parser, new[]{ "RpcsByPeer_" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }),
 | 
	
		
			
				|  |  |              null, null, }),
 | 
	
		
			
				|  |  |              new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.LoadBalancerAccumulatedStatsRequest), global::Grpc.Testing.LoadBalancerAccumulatedStatsRequest.Parser, null, null, null, null, null),
 | 
	
		
			
				|  |  | -            new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse), global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Parser, new[]{ "NumRpcsStartedByMethod", "NumRpcsSucceededByMethod", "NumRpcsFailedByMethod" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, null, }),
 | 
	
		
			
				|  |  | -            new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.ClientConfigureRequest), global::Grpc.Testing.ClientConfigureRequest.Parser, new[]{ "Types_", "Metadata" }, null, new[]{ typeof(global::Grpc.Testing.ClientConfigureRequest.Types.RpcType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.ClientConfigureRequest.Types.Metadata), global::Grpc.Testing.ClientConfigureRequest.Types.Metadata.Parser, new[]{ "Type", "Key", "Value" }, null, null, null, null)}),
 | 
	
		
			
				|  |  | +            new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse), global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Parser, new[]{ "NumRpcsStartedByMethod", "NumRpcsSucceededByMethod", "NumRpcsFailedByMethod", "StatsPerMethod" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, null, new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats), global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats.Parser, new[]{ "RpcsStarted", "Result" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }),
 | 
	
		
			
				|  |  | +            null, }),
 | 
	
		
			
				|  |  | +            new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.ClientConfigureRequest), global::Grpc.Testing.ClientConfigureRequest.Parser, new[]{ "Types_", "Metadata", "TimeoutSec" }, null, new[]{ typeof(global::Grpc.Testing.ClientConfigureRequest.Types.RpcType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.ClientConfigureRequest.Types.Metadata), global::Grpc.Testing.ClientConfigureRequest.Types.Metadata.Parser, new[]{ "Type", "Key", "Value" }, null, null, null, null)}),
 | 
	
		
			
				|  |  |              new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Testing.ClientConfigureResponse), global::Grpc.Testing.ClientConfigureResponse.Parser, null, null, null, null, null)
 | 
	
		
			
				|  |  |            }));
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -4065,6 +4075,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        numRpcsStartedByMethod_ = other.numRpcsStartedByMethod_.Clone();
 | 
	
		
			
				|  |  |        numRpcsSucceededByMethod_ = other.numRpcsSucceededByMethod_.Clone();
 | 
	
		
			
				|  |  |        numRpcsFailedByMethod_ = other.numRpcsFailedByMethod_.Clone();
 | 
	
		
			
				|  |  | +      statsPerMethod_ = other.statsPerMethod_.Clone();
 | 
	
		
			
				|  |  |        _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4080,7 +4091,9 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |      private readonly pbc::MapField<string, int> numRpcsStartedByMethod_ = new pbc::MapField<string, int>();
 | 
	
		
			
				|  |  |      /// <summary>
 | 
	
		
			
				|  |  |      /// The total number of RPCs have ever issued for each type.
 | 
	
		
			
				|  |  | +    /// Deprecated: use stats_per_method.rpcs_started instead.
 | 
	
		
			
				|  |  |      /// </summary>
 | 
	
		
			
				|  |  | +    [global::System.ObsoleteAttribute]
 | 
	
		
			
				|  |  |      [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  |      public pbc::MapField<string, int> NumRpcsStartedByMethod {
 | 
	
		
			
				|  |  |        get { return numRpcsStartedByMethod_; }
 | 
	
	
		
			
				|  | @@ -4093,7 +4106,9 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |      private readonly pbc::MapField<string, int> numRpcsSucceededByMethod_ = new pbc::MapField<string, int>();
 | 
	
		
			
				|  |  |      /// <summary>
 | 
	
		
			
				|  |  |      /// The total number of RPCs have ever completed successfully for each type.
 | 
	
		
			
				|  |  | +    /// Deprecated: use stats_per_method.result instead.
 | 
	
		
			
				|  |  |      /// </summary>
 | 
	
		
			
				|  |  | +    [global::System.ObsoleteAttribute]
 | 
	
		
			
				|  |  |      [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  |      public pbc::MapField<string, int> NumRpcsSucceededByMethod {
 | 
	
		
			
				|  |  |        get { return numRpcsSucceededByMethod_; }
 | 
	
	
		
			
				|  | @@ -4106,12 +4121,28 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |      private readonly pbc::MapField<string, int> numRpcsFailedByMethod_ = new pbc::MapField<string, int>();
 | 
	
		
			
				|  |  |      /// <summary>
 | 
	
		
			
				|  |  |      /// The total number of RPCs have ever failed for each type.
 | 
	
		
			
				|  |  | +    /// Deprecated: use stats_per_method.result instead.
 | 
	
		
			
				|  |  |      /// </summary>
 | 
	
		
			
				|  |  | +    [global::System.ObsoleteAttribute]
 | 
	
		
			
				|  |  |      [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  |      public pbc::MapField<string, int> NumRpcsFailedByMethod {
 | 
	
		
			
				|  |  |        get { return numRpcsFailedByMethod_; }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /// <summary>Field number for the "stats_per_method" field.</summary>
 | 
	
		
			
				|  |  | +    public const int StatsPerMethodFieldNumber = 4;
 | 
	
		
			
				|  |  | +    private static readonly pbc::MapField<string, global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats>.Codec _map_statsPerMethod_codec
 | 
	
		
			
				|  |  | +        = new pbc::MapField<string, global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats>.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats.Parser), 34);
 | 
	
		
			
				|  |  | +    private readonly pbc::MapField<string, global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats> statsPerMethod_ = new pbc::MapField<string, global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats>();
 | 
	
		
			
				|  |  | +    /// <summary>
 | 
	
		
			
				|  |  | +    /// Per-method RPC statistics.  The key is the RpcType in string form; e.g.
 | 
	
		
			
				|  |  | +    /// 'EMPTY_CALL' or 'UNARY_CALL'
 | 
	
		
			
				|  |  | +    /// </summary>
 | 
	
		
			
				|  |  | +    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +    public pbc::MapField<string, global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Types.MethodStats> StatsPerMethod {
 | 
	
		
			
				|  |  | +      get { return statsPerMethod_; }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  |      public override bool Equals(object other) {
 | 
	
		
			
				|  |  |        return Equals(other as LoadBalancerAccumulatedStatsResponse);
 | 
	
	
		
			
				|  | @@ -4128,6 +4159,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        if (!NumRpcsStartedByMethod.Equals(other.NumRpcsStartedByMethod)) return false;
 | 
	
		
			
				|  |  |        if (!NumRpcsSucceededByMethod.Equals(other.NumRpcsSucceededByMethod)) return false;
 | 
	
		
			
				|  |  |        if (!NumRpcsFailedByMethod.Equals(other.NumRpcsFailedByMethod)) return false;
 | 
	
		
			
				|  |  | +      if (!StatsPerMethod.Equals(other.StatsPerMethod)) return false;
 | 
	
		
			
				|  |  |        return Equals(_unknownFields, other._unknownFields);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4137,6 +4169,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        hash ^= NumRpcsStartedByMethod.GetHashCode();
 | 
	
		
			
				|  |  |        hash ^= NumRpcsSucceededByMethod.GetHashCode();
 | 
	
		
			
				|  |  |        hash ^= NumRpcsFailedByMethod.GetHashCode();
 | 
	
		
			
				|  |  | +      hash ^= StatsPerMethod.GetHashCode();
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          hash ^= _unknownFields.GetHashCode();
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4156,6 +4189,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        numRpcsStartedByMethod_.WriteTo(output, _map_numRpcsStartedByMethod_codec);
 | 
	
		
			
				|  |  |        numRpcsSucceededByMethod_.WriteTo(output, _map_numRpcsSucceededByMethod_codec);
 | 
	
		
			
				|  |  |        numRpcsFailedByMethod_.WriteTo(output, _map_numRpcsFailedByMethod_codec);
 | 
	
		
			
				|  |  | +      statsPerMethod_.WriteTo(output, _map_statsPerMethod_codec);
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          _unknownFields.WriteTo(output);
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4168,6 +4202,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        numRpcsStartedByMethod_.WriteTo(ref output, _map_numRpcsStartedByMethod_codec);
 | 
	
		
			
				|  |  |        numRpcsSucceededByMethod_.WriteTo(ref output, _map_numRpcsSucceededByMethod_codec);
 | 
	
		
			
				|  |  |        numRpcsFailedByMethod_.WriteTo(ref output, _map_numRpcsFailedByMethod_codec);
 | 
	
		
			
				|  |  | +      statsPerMethod_.WriteTo(ref output, _map_statsPerMethod_codec);
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          _unknownFields.WriteTo(ref output);
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4180,6 +4215,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        size += numRpcsStartedByMethod_.CalculateSize(_map_numRpcsStartedByMethod_codec);
 | 
	
		
			
				|  |  |        size += numRpcsSucceededByMethod_.CalculateSize(_map_numRpcsSucceededByMethod_codec);
 | 
	
		
			
				|  |  |        size += numRpcsFailedByMethod_.CalculateSize(_map_numRpcsFailedByMethod_codec);
 | 
	
		
			
				|  |  | +      size += statsPerMethod_.CalculateSize(_map_statsPerMethod_codec);
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          size += _unknownFields.CalculateSize();
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4194,6 +4230,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        numRpcsStartedByMethod_.Add(other.numRpcsStartedByMethod_);
 | 
	
		
			
				|  |  |        numRpcsSucceededByMethod_.Add(other.numRpcsSucceededByMethod_);
 | 
	
		
			
				|  |  |        numRpcsFailedByMethod_.Add(other.numRpcsFailedByMethod_);
 | 
	
		
			
				|  |  | +      statsPerMethod_.Add(other.statsPerMethod_);
 | 
	
		
			
				|  |  |        _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4220,6 +4257,10 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |              numRpcsFailedByMethod_.AddEntriesFrom(input, _map_numRpcsFailedByMethod_codec);
 | 
	
		
			
				|  |  |              break;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +          case 34: {
 | 
	
		
			
				|  |  | +            statsPerMethod_.AddEntriesFrom(input, _map_statsPerMethod_codec);
 | 
	
		
			
				|  |  | +            break;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      #endif
 | 
	
	
		
			
				|  | @@ -4246,11 +4287,226 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |              numRpcsFailedByMethod_.AddEntriesFrom(ref input, _map_numRpcsFailedByMethod_codec);
 | 
	
		
			
				|  |  |              break;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +          case 34: {
 | 
	
		
			
				|  |  | +            statsPerMethod_.AddEntriesFrom(ref input, _map_statsPerMethod_codec);
 | 
	
		
			
				|  |  | +            break;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    #region Nested types
 | 
	
		
			
				|  |  | +    /// <summary>Container for nested types declared in the LoadBalancerAccumulatedStatsResponse message type.</summary>
 | 
	
		
			
				|  |  | +    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +    public static partial class Types {
 | 
	
		
			
				|  |  | +      public sealed partial class MethodStats : pb::IMessage<MethodStats>
 | 
	
		
			
				|  |  | +      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 | 
	
		
			
				|  |  | +          , pb::IBufferMessage
 | 
	
		
			
				|  |  | +      #endif
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        private static readonly pb::MessageParser<MethodStats> _parser = new pb::MessageParser<MethodStats>(() => new MethodStats());
 | 
	
		
			
				|  |  | +        private pb::UnknownFieldSet _unknownFields;
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public static pb::MessageParser<MethodStats> Parser { get { return _parser; } }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public static pbr::MessageDescriptor Descriptor {
 | 
	
		
			
				|  |  | +          get { return global::Grpc.Testing.LoadBalancerAccumulatedStatsResponse.Descriptor.NestedTypes[3]; }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        pbr::MessageDescriptor pb::IMessage.Descriptor {
 | 
	
		
			
				|  |  | +          get { return Descriptor; }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public MethodStats() {
 | 
	
		
			
				|  |  | +          OnConstruction();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        partial void OnConstruction();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public MethodStats(MethodStats other) : this() {
 | 
	
		
			
				|  |  | +          rpcsStarted_ = other.rpcsStarted_;
 | 
	
		
			
				|  |  | +          result_ = other.result_.Clone();
 | 
	
		
			
				|  |  | +          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public MethodStats Clone() {
 | 
	
		
			
				|  |  | +          return new MethodStats(this);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /// <summary>Field number for the "rpcs_started" field.</summary>
 | 
	
		
			
				|  |  | +        public const int RpcsStartedFieldNumber = 1;
 | 
	
		
			
				|  |  | +        private int rpcsStarted_;
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// The number of RPCs that were started for this method.
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public int RpcsStarted {
 | 
	
		
			
				|  |  | +          get { return rpcsStarted_; }
 | 
	
		
			
				|  |  | +          set {
 | 
	
		
			
				|  |  | +            rpcsStarted_ = value;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /// <summary>Field number for the "result" field.</summary>
 | 
	
		
			
				|  |  | +        public const int ResultFieldNumber = 2;
 | 
	
		
			
				|  |  | +        private static readonly pbc::MapField<int, int>.Codec _map_result_codec
 | 
	
		
			
				|  |  | +            = new pbc::MapField<int, int>.Codec(pb::FieldCodec.ForInt32(8, 0), pb::FieldCodec.ForInt32(16, 0), 18);
 | 
	
		
			
				|  |  | +        private readonly pbc::MapField<int, int> result_ = new pbc::MapField<int, int>();
 | 
	
		
			
				|  |  | +        /// <summary>
 | 
	
		
			
				|  |  | +        /// The number of RPCs that completed with each status for this method.  The
 | 
	
		
			
				|  |  | +        /// key is the integral value of a google.rpc.Code; the value is the count.
 | 
	
		
			
				|  |  | +        /// </summary>
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public pbc::MapField<int, int> Result {
 | 
	
		
			
				|  |  | +          get { return result_; }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public override bool Equals(object other) {
 | 
	
		
			
				|  |  | +          return Equals(other as MethodStats);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public bool Equals(MethodStats other) {
 | 
	
		
			
				|  |  | +          if (ReferenceEquals(other, null)) {
 | 
	
		
			
				|  |  | +            return false;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if (ReferenceEquals(other, this)) {
 | 
	
		
			
				|  |  | +            return true;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if (RpcsStarted != other.RpcsStarted) return false;
 | 
	
		
			
				|  |  | +          if (!Result.Equals(other.Result)) return false;
 | 
	
		
			
				|  |  | +          return Equals(_unknownFields, other._unknownFields);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public override int GetHashCode() {
 | 
	
		
			
				|  |  | +          int hash = 1;
 | 
	
		
			
				|  |  | +          if (RpcsStarted != 0) hash ^= RpcsStarted.GetHashCode();
 | 
	
		
			
				|  |  | +          hash ^= Result.GetHashCode();
 | 
	
		
			
				|  |  | +          if (_unknownFields != null) {
 | 
	
		
			
				|  |  | +            hash ^= _unknownFields.GetHashCode();
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          return hash;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public override string ToString() {
 | 
	
		
			
				|  |  | +          return pb::JsonFormatter.ToDiagnosticString(this);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public void WriteTo(pb::CodedOutputStream output) {
 | 
	
		
			
				|  |  | +        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 | 
	
		
			
				|  |  | +          output.WriteRawMessage(this);
 | 
	
		
			
				|  |  | +        #else
 | 
	
		
			
				|  |  | +          if (RpcsStarted != 0) {
 | 
	
		
			
				|  |  | +            output.WriteRawTag(8);
 | 
	
		
			
				|  |  | +            output.WriteInt32(RpcsStarted);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          result_.WriteTo(output, _map_result_codec);
 | 
	
		
			
				|  |  | +          if (_unknownFields != null) {
 | 
	
		
			
				|  |  | +            _unknownFields.WriteTo(output);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        #endif
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 | 
	
		
			
				|  |  | +          if (RpcsStarted != 0) {
 | 
	
		
			
				|  |  | +            output.WriteRawTag(8);
 | 
	
		
			
				|  |  | +            output.WriteInt32(RpcsStarted);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          result_.WriteTo(ref output, _map_result_codec);
 | 
	
		
			
				|  |  | +          if (_unknownFields != null) {
 | 
	
		
			
				|  |  | +            _unknownFields.WriteTo(ref output);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        #endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public int CalculateSize() {
 | 
	
		
			
				|  |  | +          int size = 0;
 | 
	
		
			
				|  |  | +          if (RpcsStarted != 0) {
 | 
	
		
			
				|  |  | +            size += 1 + pb::CodedOutputStream.ComputeInt32Size(RpcsStarted);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          size += result_.CalculateSize(_map_result_codec);
 | 
	
		
			
				|  |  | +          if (_unknownFields != null) {
 | 
	
		
			
				|  |  | +            size += _unknownFields.CalculateSize();
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          return size;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public void MergeFrom(MethodStats other) {
 | 
	
		
			
				|  |  | +          if (other == null) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if (other.RpcsStarted != 0) {
 | 
	
		
			
				|  |  | +            RpcsStarted = other.RpcsStarted;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          result_.Add(other.result_);
 | 
	
		
			
				|  |  | +          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        public void MergeFrom(pb::CodedInputStream input) {
 | 
	
		
			
				|  |  | +        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 | 
	
		
			
				|  |  | +          input.ReadRawMessage(this);
 | 
	
		
			
				|  |  | +        #else
 | 
	
		
			
				|  |  | +          uint tag;
 | 
	
		
			
				|  |  | +          while ((tag = input.ReadTag()) != 0) {
 | 
	
		
			
				|  |  | +            switch(tag) {
 | 
	
		
			
				|  |  | +              default:
 | 
	
		
			
				|  |  | +                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +              case 8: {
 | 
	
		
			
				|  |  | +                RpcsStarted = input.ReadInt32();
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              case 18: {
 | 
	
		
			
				|  |  | +                result_.AddEntriesFrom(input, _map_result_codec);
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        #endif
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
 | 
	
		
			
				|  |  | +        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
 | 
	
		
			
				|  |  | +          uint tag;
 | 
	
		
			
				|  |  | +          while ((tag = input.ReadTag()) != 0) {
 | 
	
		
			
				|  |  | +            switch(tag) {
 | 
	
		
			
				|  |  | +              default:
 | 
	
		
			
				|  |  | +                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +              case 8: {
 | 
	
		
			
				|  |  | +                RpcsStarted = input.ReadInt32();
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +              case 18: {
 | 
	
		
			
				|  |  | +                result_.AddEntriesFrom(ref input, _map_result_codec);
 | 
	
		
			
				|  |  | +                break;
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        #endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    /// <summary>
 | 
	
	
		
			
				|  | @@ -4287,6 +4543,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |      public ClientConfigureRequest(ClientConfigureRequest other) : this() {
 | 
	
		
			
				|  |  |        types_ = other.types_.Clone();
 | 
	
		
			
				|  |  |        metadata_ = other.metadata_.Clone();
 | 
	
		
			
				|  |  | +      timeoutSec_ = other.timeoutSec_;
 | 
	
		
			
				|  |  |        _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4321,6 +4578,21 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        get { return metadata_; }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /// <summary>Field number for the "timeout_sec" field.</summary>
 | 
	
		
			
				|  |  | +    public const int TimeoutSecFieldNumber = 3;
 | 
	
		
			
				|  |  | +    private int timeoutSec_;
 | 
	
		
			
				|  |  | +    /// <summary>
 | 
	
		
			
				|  |  | +    /// The deadline to use, in seconds, for all RPCs.  If unset or zero, the
 | 
	
		
			
				|  |  | +    /// client will use the default from the command-line.
 | 
	
		
			
				|  |  | +    /// </summary>
 | 
	
		
			
				|  |  | +    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  | +    public int TimeoutSec {
 | 
	
		
			
				|  |  | +      get { return timeoutSec_; }
 | 
	
		
			
				|  |  | +      set {
 | 
	
		
			
				|  |  | +        timeoutSec_ = value;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
 | 
	
		
			
				|  |  |      public override bool Equals(object other) {
 | 
	
		
			
				|  |  |        return Equals(other as ClientConfigureRequest);
 | 
	
	
		
			
				|  | @@ -4336,6 +4608,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        if(!types_.Equals(other.types_)) return false;
 | 
	
		
			
				|  |  |        if(!metadata_.Equals(other.metadata_)) return false;
 | 
	
		
			
				|  |  | +      if (TimeoutSec != other.TimeoutSec) return false;
 | 
	
		
			
				|  |  |        return Equals(_unknownFields, other._unknownFields);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4344,6 +4617,7 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        int hash = 1;
 | 
	
		
			
				|  |  |        hash ^= types_.GetHashCode();
 | 
	
		
			
				|  |  |        hash ^= metadata_.GetHashCode();
 | 
	
		
			
				|  |  | +      if (TimeoutSec != 0) hash ^= TimeoutSec.GetHashCode();
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          hash ^= _unknownFields.GetHashCode();
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4362,6 +4636,10 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |      #else
 | 
	
		
			
				|  |  |        types_.WriteTo(output, _repeated_types_codec);
 | 
	
		
			
				|  |  |        metadata_.WriteTo(output, _repeated_metadata_codec);
 | 
	
		
			
				|  |  | +      if (TimeoutSec != 0) {
 | 
	
		
			
				|  |  | +        output.WriteRawTag(24);
 | 
	
		
			
				|  |  | +        output.WriteInt32(TimeoutSec);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          _unknownFields.WriteTo(output);
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4373,6 +4651,10 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |      void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
 | 
	
		
			
				|  |  |        types_.WriteTo(ref output, _repeated_types_codec);
 | 
	
		
			
				|  |  |        metadata_.WriteTo(ref output, _repeated_metadata_codec);
 | 
	
		
			
				|  |  | +      if (TimeoutSec != 0) {
 | 
	
		
			
				|  |  | +        output.WriteRawTag(24);
 | 
	
		
			
				|  |  | +        output.WriteInt32(TimeoutSec);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          _unknownFields.WriteTo(ref output);
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4384,6 +4666,9 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        int size = 0;
 | 
	
		
			
				|  |  |        size += types_.CalculateSize(_repeated_types_codec);
 | 
	
		
			
				|  |  |        size += metadata_.CalculateSize(_repeated_metadata_codec);
 | 
	
		
			
				|  |  | +      if (TimeoutSec != 0) {
 | 
	
		
			
				|  |  | +        size += 1 + pb::CodedOutputStream.ComputeInt32Size(TimeoutSec);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        if (_unknownFields != null) {
 | 
	
		
			
				|  |  |          size += _unknownFields.CalculateSize();
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -4397,6 +4682,9 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        types_.Add(other.types_);
 | 
	
		
			
				|  |  |        metadata_.Add(other.metadata_);
 | 
	
		
			
				|  |  | +      if (other.TimeoutSec != 0) {
 | 
	
		
			
				|  |  | +        TimeoutSec = other.TimeoutSec;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4420,6 +4708,10 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |              metadata_.AddEntriesFrom(input, _repeated_metadata_codec);
 | 
	
		
			
				|  |  |              break;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +          case 24: {
 | 
	
		
			
				|  |  | +            TimeoutSec = input.ReadInt32();
 | 
	
		
			
				|  |  | +            break;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      #endif
 | 
	
	
		
			
				|  | @@ -4443,6 +4735,10 @@ namespace Grpc.Testing {
 | 
	
		
			
				|  |  |              metadata_.AddEntriesFrom(ref input, _repeated_metadata_codec);
 | 
	
		
			
				|  |  |              break;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +          case 24: {
 | 
	
		
			
				|  |  | +            TimeoutSec = input.ReadInt32();
 | 
	
		
			
				|  |  | +            break;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 |