| 
					
				 | 
			
			
				@@ -0,0 +1,2627 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Generated by the protocol buffer compiler.  DO NOT EDIT! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// source: unittest_custom_options_proto3.proto 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#pragma warning disable 1591, 0612, 3021 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#region Designer generated code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using pb = global::Google.Protobuf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using pbc = global::Google.Protobuf.Collections; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using pbr = global::Google.Protobuf.Reflection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using scg = global::System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace UnitTest.Issues.TestProtos { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// <summary>Holder for reflection information generated from unittest_custom_options_proto3.proto</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public static partial class UnittestCustomOptionsProto3Reflection { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #region Descriptor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>File descriptor for unittest_custom_options_proto3.proto</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::FileDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static pbr::FileDescriptor descriptor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    static UnittestCustomOptionsProto3Reflection() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      byte[] descriptorData = global::System.Convert.FromBase64String( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          string.Concat( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "CiR1bml0dGVzdF9jdXN0b21fb3B0aW9uc19wcm90bzMucHJvdG8SEXByb3Rv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "YnVmX3VuaXR0ZXN0GiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "byLHAQocVGVzdE1lc3NhZ2VXaXRoQ3VzdG9tT3B0aW9ucxIeCgZmaWVsZDEY", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "ASABKAlCDggBweDDHS3hdQoCAAAAEhUKC29uZW9mX2ZpZWxkGAIgASgFSAAi", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "UwoGQW5FbnVtEhYKEkFORU5VTV9VTlNQRUNJRklFRBAAEg8KC0FORU5VTV9W", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "QUwxEAESFgoLQU5FTlVNX1ZBTDIQAhoFsIb6BXsaCMX2yR3r/P//OhAIAODp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "wh3I//////////8BQgkKB0FuT25lb2YiGAoWQ3VzdG9tT3B0aW9uRm9vUmVx", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dWVzdCIZChdDdXN0b21PcHRpb25Gb29SZXNwb25zZSIeChxDdXN0b21PcHRp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b25Gb29DbGllbnRNZXNzYWdlIh4KHEN1c3RvbU9wdGlvbkZvb1NlcnZlck1l", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "c3NhZ2UijwEKGkR1bW15TWVzc2FnZUNvbnRhaW5pbmdFbnVtInEKDFRlc3RF", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bnVtVHlwZRIgChxURVNUX09QVElPTl9FTlVNX1VOU1BFQ0lGSUVEEAASGgoW", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "VEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMKFlRFU1RfT1BUSU9OX0VOVU1f", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "VFlQRTIQ6f//////////ASIhCh9EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b25UeXBlIooBChxDdXN0b21PcHRpb25NaW5JbnRlZ2VyVmFsdWVzOmrQ3rId", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "AOjGsh2AgICA+P////8BsLyyHYCAgICAgICAgAGAk7IdAPj1sB0AgMSwHf//", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "//8P+JewHf///////////wGd9a8dAAAAAJHurx0AAAAAAAAAAK2Nrx0AAACA", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "mdaoHQAAAAAAAACAIpEBChxDdXN0b21PcHRpb25NYXhJbnRlZ2VyVmFsdWVz", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "OnHQ3rIdAejGsh3/////B7C8sh3//////////3+Ak7Id/////w/49bAd////", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "////////AYDEsB3+////D/iXsB3+//////////8BnfWvHf////+R7q8d////", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "//////+tja8d////f5nWqB3/////////fyJuChdDdXN0b21PcHRpb25PdGhl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "clZhbHVlczpT6MayHZz//////////wH136Md54dFQencoh37WYxCysDzP6rc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "oh0OSGVsbG8sICJXb3JsZCKy2aIdC0hlbGxvAFdvcmxkiNmiHen/////////", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "/wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0aXZlSW50czoU9d+jHQAAQEHp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "3KIdAAAAAABAY0AiNAocU2V0dGluZ1JlYWxzRnJvbU5lZ2F0aXZlSW50czoU", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "9d+jHQAAQMHp3KIdAAAAAABAY8AiSwoSQ29tcGxleE9wdGlvblR5cGUxEgsK", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "A2ZvbxgBIAEoBRIMCgRmb28yGAIgASgFEgwKBGZvbzMYAyABKAUSDAoEZm9v", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "NBgEIAMoBSKBAwoSQ29tcGxleE9wdGlvblR5cGUyEjIKA2JhchgBIAEoCzIl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRILCgNiYXoY", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "AiABKAUSRgoEZnJlZBgDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBs", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "ZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTQSSAoGYmFybmV5GAQg", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "AygLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bXBsZXhPcHRpb25UeXBlNBqXAQoSQ29tcGxleE9wdGlvblR5cGU0Eg0KBXdh", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bGRvGAEgASgFMnIKDGNvbXBsZXhfb3B0NBIfLmdvb2dsZS5wcm90b2J1Zi5N", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "ZXNzYWdlT3B0aW9ucxiK9dEDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTQiIQoSQ29tcGxl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "eE9wdGlvblR5cGUzEgsKA3F1eBgBIAEoBSJsChVWYXJpb3VzQ29tcGxleE9w", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dGlvbnM6U6LilR0CCCqi4pUdAiBjouKVHQIgWKr9kB0DENsHqv2QHQUKAwjn", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "BdKojx0DCLMPqv2QHQUaAwjBAqr9kB0EIgIIZar9kB0FIgMI1AH63pAdAggJ", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "IkwKCUFnZ3JlZ2F0ZRIJCgFpGAEgASgFEgkKAXMYAiABKAkSKQoDc3ViGAMg", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "ASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlIlkKEEFnZ3JlZ2F0", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "ZU1lc3NhZ2USKQoJZmllbGRuYW1lGAEgASgFQhbyoYc7ERIPRmllbGRBbm5v", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dGF0aW9uOhrC0YY7FQhlEhFNZXNzYWdlQW5ub3RhdGlvbiKXAQoQTmVzdGVk", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "T3B0aW9uVHlwZRo7Cg1OZXN0ZWRNZXNzYWdlEiIKDG5lc3RlZF9maWVsZBgB", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "IAEoBUIMweDDHeoDAAAAAAAAOgbg6cId6QciRgoKTmVzdGVkRW51bRIPCgtV", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "TlNQRUNJRklFRBAAEh0KEU5FU1RFRF9FTlVNX1ZBTFVFEAEaBrCG+gXsBxoI", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "xfbJHesDAAAqUgoKTWV0aG9kT3B0MRIaChZNRVRIT0RPUFQxX1VOU1BFQ0lG", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "SUVEEAASEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9ET1BUMV9WQUwy", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "EAIqXgoNQWdncmVnYXRlRW51bRIPCgtVTlNQRUNJRklFRBAAEiUKBVZBTFVF", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "EAEaGsr8iTsVEhNFbnVtVmFsdWVBbm5vdGF0aW9uGhWSlYg7EBIORW51bUFu", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bm90YXRpb24yjgEKHFRlc3RTZXJ2aWNlV2l0aEN1c3RvbU9wdGlvbnMSYwoD", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Rm9vEikucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVxdWVz", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dBoqLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1Jlc3BvbnNl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "IgXg+oweAhoJkLKLHtPbgMtJMpkBChBBZ2dyZWdhdGVTZXJ2aWNlEmsKBk1l", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dGhvZBIjLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZU1lc3NhZ2UaIy5w", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "cm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVNZXNzYWdlIhfKyJY7EhIQTWV0", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "aG9kQW5ub3RhdGlvbhoYyvuOOxMSEVNlcnZpY2VBbm5vdGF0aW9uOjIKCWZp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bGVfb3B0MRIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxiOndgDIAEo", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "BDo4CgxtZXNzYWdlX29wdDESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9w", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dGlvbnMYnK3YAyABKAU6NAoKZmllbGRfb3B0MRIdLmdvb2dsZS5wcm90b2J1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Zi5GaWVsZE9wdGlvbnMYiLzYAyABKAY6MgoJZW51bV9vcHQxEhwuZ29vZ2xl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "LnByb3RvYnVmLkVudW1PcHRpb25zGOie2QMgASgPOjwKD2VudW1fdmFsdWVf", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b3B0MRIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGOagXyAB", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "KAU6OAoMc2VydmljZV9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VP", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "cHRpb25zGKK24QMgASgSOlUKC21ldGhvZF9vcHQxEh4uZ29vZ2xlLnByb3Rv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "YnVmLk1ldGhvZE9wdGlvbnMYrM/hAyABKA4yHS5wcm90b2J1Zl91bml0dGVz", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dC5NZXRob2RPcHQxOjQKCGJvb2xfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1l", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "c3NhZ2VPcHRpb25zGOqr1gMgASgIOjUKCWludDMyX29wdBIfLmdvb2dsZS5w", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "cm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjtqNYDIAEoBTo1CglpbnQ2NF9vcHQS", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Hy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxqfWAyABKAM6NgoK", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiw", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "otYDIAEoDTo2Cgp1aW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3Nh", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Z2VPcHRpb25zGN+O1gMgASgEOjYKCnNpbnQzMl9vcHQSHy5nb29nbGUucHJv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dG9idWYuTWVzc2FnZU9wdGlvbnMYwIjWAyABKBE6NgoKc2ludDY0X29wdBIf", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Lmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj/gtYDIAEoEjo3Cgtm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "aXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "/tUDIAEoBzo3CgtmaXhlZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNz", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "YWdlT3B0aW9ucxji/dUDIAEoBjo4CgxzZml4ZWQzMl9vcHQSHy5nb29nbGUu", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "cHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1fHVAyABKA86OAoMc2ZpeGVkNjRf", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOOK1QMgASgQ", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "OjUKCWZsb2F0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "cxj+u9QDIAEoAjo2Cgpkb3VibGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1l", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "c3NhZ2VPcHRpb25zGM2r1AMgASgBOjYKCnN0cmluZ19vcHQSHy5nb29nbGUu", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "cHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxavUAyABKAk6NQoJYnl0ZXNfb3B0", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJar1AMgASgMOnAK", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "CGVudW1fb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJGr", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "1AMgASgOMjoucHJvdG9idWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlQ29udGFp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bmluZ0VudW0uVGVzdEVudW1UeXBlOnAKEG1lc3NhZ2VfdHlwZV9vcHQSHy5n", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYr/LTAyABKAsyMi5wcm90", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Ol8KDGNvbXBsZXhfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "aW9ucxik3NIDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b25UeXBlMTpfCgxjb21wbGV4X29wdDISHy5nb29nbGUucHJvdG9idWYuTWVz", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "c2FnZU9wdGlvbnMY1Y/SAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21w", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bGV4T3B0aW9uVHlwZTI6XwoMY29tcGxleF9vcHQzEh8uZ29vZ2xlLnByb3Rv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "YnVmLk1lc3NhZ2VPcHRpb25zGO+L0gMgASgLMiUucHJvdG9idWZfdW5pdHRl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "c3QuQ29tcGxleE9wdGlvblR5cGUzOk4KB2ZpbGVvcHQSHC5nb29nbGUucHJv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dG9idWYuRmlsZU9wdGlvbnMYz92wByABKAsyHC5wcm90b2J1Zl91bml0dGVz", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dC5BZ2dyZWdhdGU6UAoGbXNnb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3Nh", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Z2VPcHRpb25zGJjqsAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVn", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "YXRlOlAKCGZpZWxkb3B0Eh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9u", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "cxie9LAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZTpOCgdl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "bnVtb3B0EhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zGNKCsQcgASgL", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "MhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlOlYKCmVudW12YWxvcHQS", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "IS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucxjJn7EHIAEoCzIc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "LnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZTpUCgpzZXJ2aWNlb3B0Eh8u", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Z29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGLnvsQcgASgLMhwucHJv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dG9idWZfdW5pdHRlc3QuQWdncmVnYXRlOlIKCW1ldGhvZG9wdBIeLmdvb2ds", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "ZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGInpsgcgASgLMhwucHJvdG9idWZf", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "dW5pdHRlc3QuQWdncmVnYXRlQlWqAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFBy", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "b3Rvc/DowR3qrcDlJPrshTsqCGQSDkZpbGVBbm5vdGF0aW9uGhYSFE5lc3Rl", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "ZEZpbGVBbm5vdGF0aW9uYgZwcm90bzM=")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          new pbr::FileDescriptor[] { pbr::FileDescriptor.DescriptorProtoFileDescriptor, }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::UnitTest.Issues.TestProtos.MethodOpt1), typeof(global::UnitTest.Issues.TestProtos.AggregateEnum), }, new pbr::GeneratedClrTypeInfo[] { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.TestMessageWithCustomOptions), global::UnitTest.Issues.TestProtos.TestMessageWithCustomOptions.Parser, new[]{ "Field1", "OneofField" }, new[]{ "AnOneof" }, new[]{ typeof(global::UnitTest.Issues.TestProtos.TestMessageWithCustomOptions.Types.AnEnum) }, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.CustomOptionFooRequest), global::UnitTest.Issues.TestProtos.CustomOptionFooRequest.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.CustomOptionFooResponse), global::UnitTest.Issues.TestProtos.CustomOptionFooResponse.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.CustomOptionFooClientMessage), global::UnitTest.Issues.TestProtos.CustomOptionFooClientMessage.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.CustomOptionFooServerMessage), global::UnitTest.Issues.TestProtos.CustomOptionFooServerMessage.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.DummyMessageContainingEnum), global::UnitTest.Issues.TestProtos.DummyMessageContainingEnum.Parser, null, null, new[]{ typeof(global::UnitTest.Issues.TestProtos.DummyMessageContainingEnum.Types.TestEnumType) }, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.DummyMessageInvalidAsOptionType), global::UnitTest.Issues.TestProtos.DummyMessageInvalidAsOptionType.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.CustomOptionMinIntegerValues), global::UnitTest.Issues.TestProtos.CustomOptionMinIntegerValues.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.CustomOptionMaxIntegerValues), global::UnitTest.Issues.TestProtos.CustomOptionMaxIntegerValues.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.CustomOptionOtherValues), global::UnitTest.Issues.TestProtos.CustomOptionOtherValues.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.SettingRealsFromPositiveInts), global::UnitTest.Issues.TestProtos.SettingRealsFromPositiveInts.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.SettingRealsFromNegativeInts), global::UnitTest.Issues.TestProtos.SettingRealsFromNegativeInts.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.ComplexOptionType1), global::UnitTest.Issues.TestProtos.ComplexOptionType1.Parser, new[]{ "Foo", "Foo2", "Foo3", "Foo4" }, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.ComplexOptionType2), global::UnitTest.Issues.TestProtos.ComplexOptionType2.Parser, new[]{ "Bar", "Baz", "Fred", "Barney" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4), global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Parser, new[]{ "Waldo" }, null, null, null)}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.ComplexOptionType3), global::UnitTest.Issues.TestProtos.ComplexOptionType3.Parser, new[]{ "Qux" }, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.VariousComplexOptions), global::UnitTest.Issues.TestProtos.VariousComplexOptions.Parser, null, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.Aggregate), global::UnitTest.Issues.TestProtos.Aggregate.Parser, new[]{ "I", "S", "Sub" }, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.AggregateMessage), global::UnitTest.Issues.TestProtos.AggregateMessage.Parser, new[]{ "Fieldname" }, null, null, null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.NestedOptionType), global::UnitTest.Issues.TestProtos.NestedOptionType.Parser, null, null, new[]{ typeof(global::UnitTest.Issues.TestProtos.NestedOptionType.Types.NestedEnum) }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::UnitTest.Issues.TestProtos.NestedOptionType.Types.NestedMessage), global::UnitTest.Issues.TestProtos.NestedOptionType.Types.NestedMessage.Parser, new[]{ "NestedField" }, null, null, null)}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  #region Enums 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public enum MethodOpt1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [pbr::OriginalName("METHODOPT1_UNSPECIFIED")] Unspecified = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [pbr::OriginalName("METHODOPT1_VAL1")] Val1 = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [pbr::OriginalName("METHODOPT1_VAL2")] Val2 = 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public enum AggregateEnum { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [pbr::OriginalName("UNSPECIFIED")] Unspecified = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [pbr::OriginalName("VALUE")] Value = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  #region Messages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// A test message with custom options at all possible locations (and also some 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// regular options, to make sure they interact nicely). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class TestMessageWithCustomOptions : pb::IMessage<TestMessageWithCustomOptions> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<TestMessageWithCustomOptions> _parser = new pb::MessageParser<TestMessageWithCustomOptions>(() => new TestMessageWithCustomOptions()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<TestMessageWithCustomOptions> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[0]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public TestMessageWithCustomOptions() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public TestMessageWithCustomOptions(TestMessageWithCustomOptions other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      field1_ = other.field1_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      switch (other.AnOneofCase) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case AnOneofOneofCase.OneofField: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          OneofField = other.OneofField; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public TestMessageWithCustomOptions Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new TestMessageWithCustomOptions(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "field1" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int Field1FieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private string field1_ = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public string Field1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return field1_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        field1_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "oneof_field" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int OneofFieldFieldNumber = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// See https://github.com/google/protobuf/issues/2316 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ///    option (oneof_opt1) = -99; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int OneofField { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return anOneofCase_ == AnOneofOneofCase.OneofField ? (int) anOneof_ : 0; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        anOneof_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        anOneofCase_ = AnOneofOneofCase.OneofField; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private object anOneof_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Enum of possible cases for the "AnOneof" oneof.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public enum AnOneofOneofCase { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      None = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OneofField = 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private AnOneofOneofCase anOneofCase_ = AnOneofOneofCase.None; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AnOneofOneofCase AnOneofCase { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return anOneofCase_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void ClearAnOneof() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      anOneofCase_ = AnOneofOneofCase.None; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      anOneof_ = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as TestMessageWithCustomOptions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(TestMessageWithCustomOptions other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Field1 != other.Field1) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (OneofField != other.OneofField) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (AnOneofCase != other.AnOneofCase) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Field1.Length != 0) hash ^= Field1.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (anOneofCase_ == AnOneofOneofCase.OneofField) hash ^= OneofField.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      hash ^= (int) anOneofCase_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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 (Field1.Length != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteString(Field1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (anOneofCase_ == AnOneofOneofCase.OneofField) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(OneofField); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Field1.Length != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Field1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (anOneofCase_ == AnOneofOneofCase.OneofField) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(OneofField); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(TestMessageWithCustomOptions other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.Field1.Length != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Field1 = other.Field1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      switch (other.AnOneofCase) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        case AnOneofOneofCase.OneofField: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          OneofField = other.OneofField; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 10: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Field1 = input.ReadString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 16: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            OneofField = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #region Nested types 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Container for nested types declared in the TestMessageWithCustomOptions message type.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static partial class Types { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      public enum AnEnum { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("ANENUM_UNSPECIFIED")] Unspecified = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("ANENUM_VAL1")] Val1 = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("ANENUM_VAL2")] Val2 = 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// A test RPC service with custom options at all possible locations (and also 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// some regular options, to make sure they interact nicely). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class CustomOptionFooRequest : pb::IMessage<CustomOptionFooRequest> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<CustomOptionFooRequest> _parser = new pb::MessageParser<CustomOptionFooRequest>(() => new CustomOptionFooRequest()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<CustomOptionFooRequest> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[1]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooRequest() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooRequest(CustomOptionFooRequest other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooRequest Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new CustomOptionFooRequest(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as CustomOptionFooRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(CustomOptionFooRequest other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(CustomOptionFooRequest other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class CustomOptionFooResponse : pb::IMessage<CustomOptionFooResponse> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<CustomOptionFooResponse> _parser = new pb::MessageParser<CustomOptionFooResponse>(() => new CustomOptionFooResponse()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<CustomOptionFooResponse> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[2]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooResponse() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooResponse(CustomOptionFooResponse other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooResponse Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new CustomOptionFooResponse(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as CustomOptionFooResponse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(CustomOptionFooResponse other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(CustomOptionFooResponse other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class CustomOptionFooClientMessage : pb::IMessage<CustomOptionFooClientMessage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<CustomOptionFooClientMessage> _parser = new pb::MessageParser<CustomOptionFooClientMessage>(() => new CustomOptionFooClientMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<CustomOptionFooClientMessage> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[3]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooClientMessage() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooClientMessage(CustomOptionFooClientMessage other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooClientMessage Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new CustomOptionFooClientMessage(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as CustomOptionFooClientMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(CustomOptionFooClientMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(CustomOptionFooClientMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class CustomOptionFooServerMessage : pb::IMessage<CustomOptionFooServerMessage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<CustomOptionFooServerMessage> _parser = new pb::MessageParser<CustomOptionFooServerMessage>(() => new CustomOptionFooServerMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<CustomOptionFooServerMessage> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[4]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooServerMessage() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooServerMessage(CustomOptionFooServerMessage other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionFooServerMessage Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new CustomOptionFooServerMessage(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as CustomOptionFooServerMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(CustomOptionFooServerMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(CustomOptionFooServerMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class DummyMessageContainingEnum : pb::IMessage<DummyMessageContainingEnum> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<DummyMessageContainingEnum> _parser = new pb::MessageParser<DummyMessageContainingEnum>(() => new DummyMessageContainingEnum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<DummyMessageContainingEnum> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[5]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public DummyMessageContainingEnum() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public DummyMessageContainingEnum(DummyMessageContainingEnum other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public DummyMessageContainingEnum Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new DummyMessageContainingEnum(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as DummyMessageContainingEnum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(DummyMessageContainingEnum other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(DummyMessageContainingEnum other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #region Nested types 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Container for nested types declared in the DummyMessageContainingEnum message type.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static partial class Types { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      public enum TestEnumType { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("TEST_OPTION_ENUM_UNSPECIFIED")] TestOptionEnumUnspecified = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("TEST_OPTION_ENUM_TYPE1")] TestOptionEnumType1 = 22, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("TEST_OPTION_ENUM_TYPE2")] TestOptionEnumType2 = -23, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class DummyMessageInvalidAsOptionType : pb::IMessage<DummyMessageInvalidAsOptionType> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<DummyMessageInvalidAsOptionType> _parser = new pb::MessageParser<DummyMessageInvalidAsOptionType>(() => new DummyMessageInvalidAsOptionType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<DummyMessageInvalidAsOptionType> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[6]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public DummyMessageInvalidAsOptionType() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public DummyMessageInvalidAsOptionType(DummyMessageInvalidAsOptionType other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public DummyMessageInvalidAsOptionType Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new DummyMessageInvalidAsOptionType(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as DummyMessageInvalidAsOptionType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(DummyMessageInvalidAsOptionType other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(DummyMessageInvalidAsOptionType other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class CustomOptionMinIntegerValues : pb::IMessage<CustomOptionMinIntegerValues> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<CustomOptionMinIntegerValues> _parser = new pb::MessageParser<CustomOptionMinIntegerValues>(() => new CustomOptionMinIntegerValues()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<CustomOptionMinIntegerValues> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[7]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionMinIntegerValues() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionMinIntegerValues(CustomOptionMinIntegerValues other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionMinIntegerValues Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new CustomOptionMinIntegerValues(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as CustomOptionMinIntegerValues); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(CustomOptionMinIntegerValues other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(CustomOptionMinIntegerValues other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class CustomOptionMaxIntegerValues : pb::IMessage<CustomOptionMaxIntegerValues> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<CustomOptionMaxIntegerValues> _parser = new pb::MessageParser<CustomOptionMaxIntegerValues>(() => new CustomOptionMaxIntegerValues()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<CustomOptionMaxIntegerValues> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[8]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionMaxIntegerValues() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionMaxIntegerValues(CustomOptionMaxIntegerValues other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionMaxIntegerValues Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new CustomOptionMaxIntegerValues(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as CustomOptionMaxIntegerValues); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(CustomOptionMaxIntegerValues other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(CustomOptionMaxIntegerValues other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class CustomOptionOtherValues : pb::IMessage<CustomOptionOtherValues> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<CustomOptionOtherValues> _parser = new pb::MessageParser<CustomOptionOtherValues>(() => new CustomOptionOtherValues()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<CustomOptionOtherValues> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[9]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionOtherValues() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionOtherValues(CustomOptionOtherValues other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CustomOptionOtherValues Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new CustomOptionOtherValues(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as CustomOptionOtherValues); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(CustomOptionOtherValues other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(CustomOptionOtherValues other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class SettingRealsFromPositiveInts : pb::IMessage<SettingRealsFromPositiveInts> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<SettingRealsFromPositiveInts> _parser = new pb::MessageParser<SettingRealsFromPositiveInts>(() => new SettingRealsFromPositiveInts()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<SettingRealsFromPositiveInts> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[10]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SettingRealsFromPositiveInts() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SettingRealsFromPositiveInts(SettingRealsFromPositiveInts other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SettingRealsFromPositiveInts Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new SettingRealsFromPositiveInts(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as SettingRealsFromPositiveInts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(SettingRealsFromPositiveInts other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(SettingRealsFromPositiveInts other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class SettingRealsFromNegativeInts : pb::IMessage<SettingRealsFromNegativeInts> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<SettingRealsFromNegativeInts> _parser = new pb::MessageParser<SettingRealsFromNegativeInts>(() => new SettingRealsFromNegativeInts()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<SettingRealsFromNegativeInts> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[11]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SettingRealsFromNegativeInts() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SettingRealsFromNegativeInts(SettingRealsFromNegativeInts other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public SettingRealsFromNegativeInts Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new SettingRealsFromNegativeInts(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as SettingRealsFromNegativeInts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(SettingRealsFromNegativeInts other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(SettingRealsFromNegativeInts other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class ComplexOptionType1 : pb::IMessage<ComplexOptionType1> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<ComplexOptionType1> _parser = new pb::MessageParser<ComplexOptionType1>(() => new ComplexOptionType1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<ComplexOptionType1> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[12]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType1() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType1(ComplexOptionType1 other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foo_ = other.foo_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foo2_ = other.foo2_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foo3_ = other.foo3_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foo4_ = other.foo4_.Clone(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType1 Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new ComplexOptionType1(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "foo" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int FooFieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int foo_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int Foo { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return foo_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foo_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "foo2" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int Foo2FieldNumber = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int foo2_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int Foo2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return foo2_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foo2_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "foo3" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int Foo3FieldNumber = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int foo3_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int Foo3 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return foo3_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foo3_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "foo4" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int Foo4FieldNumber = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::FieldCodec<int> _repeated_foo4_codec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        = pb::FieldCodec.ForInt32(34); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private readonly pbc::RepeatedField<int> foo4_ = new pbc::RepeatedField<int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public pbc::RepeatedField<int> Foo4 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return foo4_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as ComplexOptionType1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(ComplexOptionType1 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo != other.Foo) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo2 != other.Foo2) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo3 != other.Foo3) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(!foo4_.Equals(other.foo4_)) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo != 0) hash ^= Foo.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo2 != 0) hash ^= Foo2.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo3 != 0) hash ^= Foo3.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      hash ^= foo4_.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 (Foo != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(Foo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo2 != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(Foo2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo3 != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(24); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(Foo3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foo4_.WriteTo(output, _repeated_foo4_codec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Foo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo2 != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Foo2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Foo3 != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Foo3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      size += foo4_.CalculateSize(_repeated_foo4_codec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(ComplexOptionType1 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.Foo != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Foo = other.Foo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.Foo2 != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Foo2 = other.Foo2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.Foo3 != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Foo3 = other.Foo3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foo4_.Add(other.foo4_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 8: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Foo = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 16: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Foo2 = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 24: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Foo3 = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 34: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 32: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foo4_.AddEntriesFrom(input, _repeated_foo4_codec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class ComplexOptionType2 : pb::IMessage<ComplexOptionType2> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<ComplexOptionType2> _parser = new pb::MessageParser<ComplexOptionType2>(() => new ComplexOptionType2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<ComplexOptionType2> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[13]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType2() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType2(ComplexOptionType2 other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Bar = other.bar_ != null ? other.Bar.Clone() : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      baz_ = other.baz_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Fred = other.fred_ != null ? other.Fred.Clone() : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      barney_ = other.barney_.Clone(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType2 Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new ComplexOptionType2(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "bar" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int BarFieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private global::UnitTest.Issues.TestProtos.ComplexOptionType1 bar_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public global::UnitTest.Issues.TestProtos.ComplexOptionType1 Bar { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return bar_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bar_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "baz" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int BazFieldNumber = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int baz_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int Baz { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return baz_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        baz_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "fred" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int FredFieldNumber = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 fred_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 Fred { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return fred_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fred_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "barney" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int BarneyFieldNumber = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::FieldCodec<global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> _repeated_barney_codec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        = pb::FieldCodec.ForMessage(34, global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Parser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private readonly pbc::RepeatedField<global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> barney_ = new pbc::RepeatedField<global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public pbc::RepeatedField<global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> Barney { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return barney_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as ComplexOptionType2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(ComplexOptionType2 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!object.Equals(Bar, other.Bar)) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Baz != other.Baz) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!object.Equals(Fred, other.Fred)) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(!barney_.Equals(other.barney_)) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (bar_ != null) hash ^= Bar.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Baz != 0) hash ^= Baz.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (fred_ != null) hash ^= Fred.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      hash ^= barney_.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 (bar_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteMessage(Bar); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Baz != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(Baz); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (fred_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(26); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteMessage(Fred); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      barney_.WriteTo(output, _repeated_barney_codec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (bar_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bar); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Baz != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Baz); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (fred_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Fred); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      size += barney_.CalculateSize(_repeated_barney_codec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(ComplexOptionType2 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.bar_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (bar_ == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          bar_ = new global::UnitTest.Issues.TestProtos.ComplexOptionType1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Bar.MergeFrom(other.Bar); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.Baz != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Baz = other.Baz; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.fred_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (fred_ == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          fred_ = new global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Fred.MergeFrom(other.Fred); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      barney_.Add(other.barney_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 10: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (bar_ == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              bar_ = new global::UnitTest.Issues.TestProtos.ComplexOptionType1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.ReadMessage(bar_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 16: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Baz = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 26: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (fred_ == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              fred_ = new global::UnitTest.Issues.TestProtos.ComplexOptionType2.Types.ComplexOptionType4(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.ReadMessage(fred_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 34: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            barney_.AddEntriesFrom(input, _repeated_barney_codec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #region Nested types 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Container for nested types declared in the ComplexOptionType2 message type.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static partial class Types { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      public sealed partial class ComplexOptionType4 : pb::IMessage<ComplexOptionType4> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private static readonly pb::MessageParser<ComplexOptionType4> _parser = new pb::MessageParser<ComplexOptionType4>(() => new ComplexOptionType4()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static pb::MessageParser<ComplexOptionType4> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          get { return global::UnitTest.Issues.TestProtos.ComplexOptionType2.Descriptor.NestedTypes[0]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public ComplexOptionType4() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public ComplexOptionType4(ComplexOptionType4 other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          waldo_ = other.waldo_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public ComplexOptionType4 Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return new ComplexOptionType4(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary>Field number for the "waldo" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public const int WaldoFieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private int waldo_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int Waldo { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          get { return waldo_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            waldo_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return Equals(other as ComplexOptionType4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public bool Equals(ComplexOptionType4 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (Waldo != other.Waldo) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (Waldo != 0) hash ^= Waldo.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 (Waldo != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            output.WriteRawTag(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            output.WriteInt32(Waldo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (Waldo != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Waldo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void MergeFrom(ComplexOptionType4 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (other.Waldo != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Waldo = other.Waldo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              case 8: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Waldo = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class ComplexOptionType3 : pb::IMessage<ComplexOptionType3> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<ComplexOptionType3> _parser = new pb::MessageParser<ComplexOptionType3>(() => new ComplexOptionType3()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<ComplexOptionType3> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[14]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType3() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType3(ComplexOptionType3 other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      qux_ = other.qux_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ComplexOptionType3 Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new ComplexOptionType3(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "qux" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int QuxFieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int qux_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int Qux { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return qux_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        qux_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as ComplexOptionType3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(ComplexOptionType3 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Qux != other.Qux) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Qux != 0) hash ^= Qux.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 (Qux != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(Qux); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Qux != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Qux); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(ComplexOptionType3 other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.Qux != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Qux = other.Qux; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 8: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Qux = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// Note that we try various different ways of naming the same extension. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class VariousComplexOptions : pb::IMessage<VariousComplexOptions> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<VariousComplexOptions> _parser = new pb::MessageParser<VariousComplexOptions>(() => new VariousComplexOptions()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<VariousComplexOptions> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[15]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public VariousComplexOptions() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public VariousComplexOptions(VariousComplexOptions other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public VariousComplexOptions Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new VariousComplexOptions(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as VariousComplexOptions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(VariousComplexOptions other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(VariousComplexOptions other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// A helper type used to test aggregate option parsing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class Aggregate : pb::IMessage<Aggregate> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<Aggregate> _parser = new pb::MessageParser<Aggregate>(() => new Aggregate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<Aggregate> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[16]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Aggregate() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Aggregate(Aggregate other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      i_ = other.i_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      s_ = other.s_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Sub = other.sub_ != null ? other.Sub.Clone() : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Aggregate Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new Aggregate(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "i" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int IFieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int i_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int I { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return i_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        i_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "s" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int SFieldNumber = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private string s_ = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public string S { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return s_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        s_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "sub" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int SubFieldNumber = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private global::UnitTest.Issues.TestProtos.Aggregate sub_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// A nested object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public global::UnitTest.Issues.TestProtos.Aggregate Sub { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return sub_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sub_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as Aggregate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(Aggregate other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (I != other.I) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (S != other.S) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!object.Equals(Sub, other.Sub)) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (I != 0) hash ^= I.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (S.Length != 0) hash ^= S.GetHashCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (sub_ != null) hash ^= Sub.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 (I != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(I); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (S.Length != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(18); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteString(S); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (sub_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(26); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteMessage(Sub); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (I != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(I); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (S.Length != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeStringSize(S); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (sub_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sub); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(Aggregate other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.I != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        I = other.I; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.S.Length != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        S = other.S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.sub_ != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sub_ == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          sub_ = new global::UnitTest.Issues.TestProtos.Aggregate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Sub.MergeFrom(other.Sub); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 8: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            I = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 18: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            S = input.ReadString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 26: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sub_ == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              sub_ = new global::UnitTest.Issues.TestProtos.Aggregate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.ReadMessage(sub_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class AggregateMessage : pb::IMessage<AggregateMessage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<AggregateMessage> _parser = new pb::MessageParser<AggregateMessage>(() => new AggregateMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<AggregateMessage> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[17]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AggregateMessage() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AggregateMessage(AggregateMessage other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      fieldname_ = other.fieldname_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AggregateMessage Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new AggregateMessage(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Field number for the "fieldname" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public const int FieldnameFieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int fieldname_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int Fieldname { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return fieldname_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fieldname_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as AggregateMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(AggregateMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Fieldname != other.Fieldname) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Fieldname != 0) hash ^= Fieldname.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 (Fieldname != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteRawTag(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output.WriteInt32(Fieldname); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (Fieldname != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Fieldname); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(AggregateMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other.Fieldname != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Fieldname = other.Fieldname; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          case 8: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Fieldname = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// Test custom options for nested type. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  public sealed partial class NestedOptionType : pb::IMessage<NestedOptionType> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static readonly pb::MessageParser<NestedOptionType> _parser = new pb::MessageParser<NestedOptionType>(() => new NestedOptionType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pb::MessageParser<NestedOptionType> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return global::UnitTest.Issues.TestProtos.UnittestCustomOptionsProto3Reflection.Descriptor.MessageTypes[18]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public NestedOptionType() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public NestedOptionType(NestedOptionType other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public NestedOptionType Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return new NestedOptionType(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return Equals(other as NestedOptionType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public bool Equals(NestedOptionType other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(NestedOptionType other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #region Nested types 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /// <summary>Container for nested types declared in the NestedOptionType message type.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static partial class Types { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      public enum NestedEnum { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("UNSPECIFIED")] Unspecified = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [pbr::OriginalName("NESTED_ENUM_VALUE")] Value = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      public sealed partial class NestedMessage : pb::IMessage<NestedMessage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static pbr::MessageDescriptor Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          get { return global::UnitTest.Issues.TestProtos.NestedOptionType.Descriptor.NestedTypes[0]; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pbr::MessageDescriptor pb::IMessage.Descriptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          get { return Descriptor; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public NestedMessage() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        partial void OnConstruction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public NestedMessage(NestedMessage other) : this() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          nestedField_ = other.nestedField_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public NestedMessage Clone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return new NestedMessage(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary>Field number for the "nested_field" field.</summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public const int NestedFieldFieldNumber = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private int nestedField_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int NestedField { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          get { return nestedField_; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          set { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nestedField_ = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public override bool Equals(object other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return Equals(other as NestedMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public bool Equals(NestedMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (ReferenceEquals(other, null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (ReferenceEquals(other, this)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (NestedField != other.NestedField) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public override int GetHashCode() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          int hash = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (NestedField != 0) hash ^= NestedField.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 (NestedField != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            output.WriteRawTag(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            output.WriteInt32(NestedField); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int CalculateSize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          int size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (NestedField != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            size += 1 + pb::CodedOutputStream.ComputeInt32Size(NestedField); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void MergeFrom(NestedMessage other) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (other == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (other.NestedField != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            NestedField = other.NestedField; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void MergeFrom(pb::CodedInputStream input) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          uint tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          while ((tag = input.ReadTag()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch(tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                input.SkipLastField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              case 8: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                NestedField = input.ReadInt32(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endregion Designer generated code 
			 |