source: trunk/tools/ExternalEvaluation/CSharp/ExternalEvaluation.Service/ExternalEvaluationMessages.cs @ 15014

Last change on this file since 15014 was 15014, checked in by pfleck, 4 years ago

Added code and tools for the ExternalEvaluationProblem. (e.g. Java-side evaluation)

File size: 198.1 KB
Line 
1// Generated by ProtoGen, Version=2.4.1.473, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
2#pragma warning disable 1591, 0612
3#region Designer generated code
4
5using pb = global::Google.ProtocolBuffers;
6using pbc = global::Google.ProtocolBuffers.Collections;
7using pbd = global::Google.ProtocolBuffers.Descriptors;
8using scg = global::System.Collections.Generic;
9namespace HeuristicLab.Problems.ExternalEvaluation {
10 
11  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
12  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
13  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
14  public static partial class ExternalEvaluationMessages {
15 
16    #region Extension registration
17    public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
18    }
19    #endregion
20    #region Static variables
21    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor;
22    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__FieldAccessorTable;
23    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor;
24    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__FieldAccessorTable;
25    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor;
26    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__FieldAccessorTable;
27    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor;
28    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__FieldAccessorTable;
29    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor;
30    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__FieldAccessorTable;
31    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor;
32    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__FieldAccessorTable;
33    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor;
34    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__FieldAccessorTable;
35    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor;
36    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__FieldAccessorTable;
37    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor;
38    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__FieldAccessorTable;
39    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor;
40    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__FieldAccessorTable;
41    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor;
42    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__FieldAccessorTable;
43    #endregion
44    #region Descriptor
45    public static pbd::FileDescriptor Descriptor {
46      get { return descriptor; }
47    }
48    private static pbd::FileDescriptor descriptor;
49   
50    static ExternalEvaluationMessages() {
51      byte[] descriptorData = global::System.Convert.FromBase64String(
52          "CjtFeHRlcm5hbEV2YWx1YXRpb24uU2VydmljZS9FeHRlcm5hbEV2YWx1YXRp" +
53          "b25NZXNzYWdlcy5wcm90bxIoSGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVy" +
54          "bmFsRXZhbHVhdGlvbiL+CgoPU29sdXRpb25NZXNzYWdlEhIKCnNvbHV0aW9u" +
55          "SWQYASACKAUSXgoLaW50ZWdlclZhcnMYAiADKAsySS5IZXVyaXN0aWNMYWIu" +
56          "UHJvYmxlbXMuRXh0ZXJuYWxFdmFsdWF0aW9uLlNvbHV0aW9uTWVzc2FnZS5J" +
57          "bnRlZ2VyVmFyaWFibGUSaAoQaW50ZWdlckFycmF5VmFycxgDIAMoCzJOLkhl" +
58          "dXJpc3RpY0xhYi5Qcm9ibGVtcy5FeHRlcm5hbEV2YWx1YXRpb24uU29sdXRp" +
59          "b25NZXNzYWdlLkludGVnZXJBcnJheVZhcmlhYmxlElwKCmRvdWJsZVZhcnMY" +
60          "BCADKAsySC5IZXVyaXN0aWNMYWIuUHJvYmxlbXMuRXh0ZXJuYWxFdmFsdWF0" +
61          "aW9uLlNvbHV0aW9uTWVzc2FnZS5Eb3VibGVWYXJpYWJsZRJmCg9kb3VibGVB" +
62          "cnJheVZhcnMYBSADKAsyTS5IZXVyaXN0aWNMYWIuUHJvYmxlbXMuRXh0ZXJu" +
63          "YWxFdmFsdWF0aW9uLlNvbHV0aW9uTWVzc2FnZS5Eb3VibGVBcnJheVZhcmlh" +
64          "YmxlElgKCGJvb2xWYXJzGAYgAygLMkYuSGV1cmlzdGljTGFiLlByb2JsZW1z" +
65          "LkV4dGVybmFsRXZhbHVhdGlvbi5Tb2x1dGlvbk1lc3NhZ2UuQm9vbFZhcmlh" +
66          "YmxlEmIKDWJvb2xBcnJheVZhcnMYByADKAsySy5IZXVyaXN0aWNMYWIuUHJv" +
67          "YmxlbXMuRXh0ZXJuYWxFdmFsdWF0aW9uLlNvbHV0aW9uTWVzc2FnZS5Cb29s" +
68          "QXJyYXlWYXJpYWJsZRJcCgpzdHJpbmdWYXJzGAggAygLMkguSGV1cmlzdGlj" +
69          "TGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVhdGlvbi5Tb2x1dGlvbk1lc3Nh" +
70          "Z2UuU3RyaW5nVmFyaWFibGUSZgoPc3RyaW5nQXJyYXlWYXJzGAkgAygLMk0u" +
71          "SGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVhdGlvbi5Tb2x1" +
72          "dGlvbk1lc3NhZ2UuU3RyaW5nQXJyYXlWYXJpYWJsZRJWCgdyYXdWYXJzGAog" +
73          "AygLMkUuSGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVhdGlv" +
74          "bi5Tb2x1dGlvbk1lc3NhZ2UuUmF3VmFyaWFibGUaLQoPSW50ZWdlclZhcmlh" +
75          "YmxlEgwKBG5hbWUYASACKAkSDAoEZGF0YRgCIAEoBRpCChRJbnRlZ2VyQXJy" +
76          "YXlWYXJpYWJsZRIMCgRuYW1lGAEgAigJEgwKBGRhdGEYAiADKAUSDgoGbGVu" +
77          "Z3RoGAMgASgFGiwKDkRvdWJsZVZhcmlhYmxlEgwKBG5hbWUYASACKAkSDAoE" +
78          "ZGF0YRgCIAEoARpBChNEb3VibGVBcnJheVZhcmlhYmxlEgwKBG5hbWUYASAC" +
79          "KAkSDAoEZGF0YRgCIAMoARIOCgZsZW5ndGgYAyABKAUaKgoMQm9vbFZhcmlh" +
80          "YmxlEgwKBG5hbWUYASACKAkSDAoEZGF0YRgCIAEoCBo/ChFCb29sQXJyYXlW" +
81          "YXJpYWJsZRIMCgRuYW1lGAEgAigJEgwKBGRhdGEYAiADKAgSDgoGbGVuZ3Ro" +
82          "GAMgASgFGiwKDlN0cmluZ1ZhcmlhYmxlEgwKBG5hbWUYASACKAkSDAoEZGF0" +
83          "YRgCIAEoCRpBChNTdHJpbmdBcnJheVZhcmlhYmxlEgwKBG5hbWUYASACKAkS" +
84          "DAoEZGF0YRgCIAMoCRIOCgZsZW5ndGgYAyABKAUaKQoLUmF3VmFyaWFibGUS" +
85          "DAoEbmFtZRgBIAIoCRIMCgRkYXRhGAIgASgMIkAKDlF1YWxpdHlNZXNzYWdl" +
86          "EhIKCnNvbHV0aW9uSWQYASACKAUSDwoHcXVhbGl0eRgCIAIoASoJCOgHEICA" +
87          "gIACMpQBChFFdmFsdWF0aW9uU2VydmljZRJ/CghFdmFsdWF0ZRI5LkhldXJp" +
88          "c3RpY0xhYi5Qcm9ibGVtcy5FeHRlcm5hbEV2YWx1YXRpb24uU29sdXRpb25N" +
89          "ZXNzYWdlGjguSGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVh" +
90          "dGlvbi5RdWFsaXR5TWVzc2FnZUIuCixjb20uaGV1cmlzdGljbGFiLnByb2Js" +
91          "ZW1zLmV4dGVybmFsZXZhbHVhdGlvbg==");
92      pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
93        descriptor = root;
94        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor = Descriptor.MessageTypes[0];
95        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__FieldAccessorTable =
96            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor,
97                new string[] { "SolutionId", "IntegerVars", "IntegerArrayVars", "DoubleVars", "DoubleArrayVars", "BoolVars", "BoolArrayVars", "StringVars", "StringArrayVars", "RawVars", });
98        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[0];
99        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__FieldAccessorTable =
100            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor,
101                new string[] { "Name", "Data", });
102        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[1];
103        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__FieldAccessorTable =
104            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor,
105                new string[] { "Name", "Data", "Length", });
106        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[2];
107        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__FieldAccessorTable =
108            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor,
109                new string[] { "Name", "Data", });
110        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[3];
111        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__FieldAccessorTable =
112            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor,
113                new string[] { "Name", "Data", "Length", });
114        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[4];
115        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__FieldAccessorTable =
116            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor,
117                new string[] { "Name", "Data", });
118        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[5];
119        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__FieldAccessorTable =
120            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor,
121                new string[] { "Name", "Data", "Length", });
122        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[6];
123        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__FieldAccessorTable =
124            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor,
125                new string[] { "Name", "Data", });
126        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[7];
127        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__FieldAccessorTable =
128            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor,
129                new string[] { "Name", "Data", "Length", });
130        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[8];
131        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__FieldAccessorTable =
132            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor,
133                new string[] { "Name", "Data", });
134        internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor = Descriptor.MessageTypes[1];
135        internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__FieldAccessorTable =
136            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor,
137                new string[] { "SolutionId", "Quality", });
138        return null;
139      };
140      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
141          new pbd::FileDescriptor[] {
142          }, assigner);
143    }
144    #endregion
145   
146  }
147  #region Messages
148  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
149  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
150  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
151  public sealed partial class SolutionMessage : pb::GeneratedMessage<SolutionMessage, SolutionMessage.Builder> {
152    private SolutionMessage() { }
153    private static readonly SolutionMessage defaultInstance = new SolutionMessage().MakeReadOnly();
154    private static readonly string[] _solutionMessageFieldNames = new string[] { "boolArrayVars", "boolVars", "doubleArrayVars", "doubleVars", "integerArrayVars", "integerVars", "rawVars", "solutionId", "stringArrayVars", "stringVars" };
155    private static readonly uint[] _solutionMessageFieldTags = new uint[] { 58, 50, 42, 34, 26, 18, 82, 8, 74, 66 };
156    public static SolutionMessage DefaultInstance {
157      get { return defaultInstance; }
158    }
159   
160    public override SolutionMessage DefaultInstanceForType {
161      get { return DefaultInstance; }
162    }
163   
164    protected override SolutionMessage ThisMessage {
165      get { return this; }
166    }
167   
168    public static pbd::MessageDescriptor Descriptor {
169      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor; }
170    }
171   
172    protected override pb::FieldAccess.FieldAccessorTable<SolutionMessage, SolutionMessage.Builder> InternalFieldAccessors {
173      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__FieldAccessorTable; }
174    }
175   
176    #region Nested types
177    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
178    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
179    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
180    public static class Types {
181      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
182      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
183      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
184      public sealed partial class IntegerVariable : pb::GeneratedMessage<IntegerVariable, IntegerVariable.Builder> {
185        private IntegerVariable() { }
186        private static readonly IntegerVariable defaultInstance = new IntegerVariable().MakeReadOnly();
187        private static readonly string[] _integerVariableFieldNames = new string[] { "data", "name" };
188        private static readonly uint[] _integerVariableFieldTags = new uint[] { 16, 10 };
189        public static IntegerVariable DefaultInstance {
190          get { return defaultInstance; }
191        }
192       
193        public override IntegerVariable DefaultInstanceForType {
194          get { return DefaultInstance; }
195        }
196       
197        protected override IntegerVariable ThisMessage {
198          get { return this; }
199        }
200       
201        public static pbd::MessageDescriptor Descriptor {
202          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor; }
203        }
204       
205        protected override pb::FieldAccess.FieldAccessorTable<IntegerVariable, IntegerVariable.Builder> InternalFieldAccessors {
206          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__FieldAccessorTable; }
207        }
208       
209        public const int NameFieldNumber = 1;
210        private bool hasName;
211        private string name_ = "";
212        public bool HasName {
213          get { return hasName; }
214        }
215        public string Name {
216          get { return name_; }
217        }
218       
219        public const int DataFieldNumber = 2;
220        private bool hasData;
221        private int data_;
222        public bool HasData {
223          get { return hasData; }
224        }
225        public int Data {
226          get { return data_; }
227        }
228       
229        public override bool IsInitialized {
230          get {
231            if (!hasName) return false;
232            return true;
233          }
234        }
235       
236        public override void WriteTo(pb::ICodedOutputStream output) {
237          int size = SerializedSize;
238          string[] field_names = _integerVariableFieldNames;
239          if (hasName) {
240            output.WriteString(1, field_names[1], Name);
241          }
242          if (hasData) {
243            output.WriteInt32(2, field_names[0], Data);
244          }
245          UnknownFields.WriteTo(output);
246        }
247       
248        private int memoizedSerializedSize = -1;
249        public override int SerializedSize {
250          get {
251            int size = memoizedSerializedSize;
252            if (size != -1) return size;
253           
254            size = 0;
255            if (hasName) {
256              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
257            }
258            if (hasData) {
259              size += pb::CodedOutputStream.ComputeInt32Size(2, Data);
260            }
261            size += UnknownFields.SerializedSize;
262            memoizedSerializedSize = size;
263            return size;
264          }
265        }
266       
267        public static IntegerVariable ParseFrom(pb::ByteString data) {
268          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
269        }
270        public static IntegerVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
271          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
272        }
273        public static IntegerVariable ParseFrom(byte[] data) {
274          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
275        }
276        public static IntegerVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
277          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
278        }
279        public static IntegerVariable ParseFrom(global::System.IO.Stream input) {
280          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
281        }
282        public static IntegerVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
283          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
284        }
285        public static IntegerVariable ParseDelimitedFrom(global::System.IO.Stream input) {
286          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
287        }
288        public static IntegerVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
289          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
290        }
291        public static IntegerVariable ParseFrom(pb::ICodedInputStream input) {
292          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
293        }
294        public static IntegerVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
295          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
296        }
297        private IntegerVariable MakeReadOnly() {
298          return this;
299        }
300       
301        public static Builder CreateBuilder() { return new Builder(); }
302        public override Builder ToBuilder() { return CreateBuilder(this); }
303        public override Builder CreateBuilderForType() { return new Builder(); }
304        public static Builder CreateBuilder(IntegerVariable prototype) {
305          return new Builder(prototype);
306        }
307       
308        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
309        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
310        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
311        public sealed partial class Builder : pb::GeneratedBuilder<IntegerVariable, Builder> {
312          protected override Builder ThisBuilder {
313            get { return this; }
314          }
315          public Builder() {
316            result = DefaultInstance;
317            resultIsReadOnly = true;
318          }
319          internal Builder(IntegerVariable cloneFrom) {
320            result = cloneFrom;
321            resultIsReadOnly = true;
322          }
323         
324          private bool resultIsReadOnly;
325          private IntegerVariable result;
326         
327          private IntegerVariable PrepareBuilder() {
328            if (resultIsReadOnly) {
329              IntegerVariable original = result;
330              result = new IntegerVariable();
331              resultIsReadOnly = false;
332              MergeFrom(original);
333            }
334            return result;
335          }
336         
337          public override bool IsInitialized {
338            get { return result.IsInitialized; }
339          }
340         
341          protected override IntegerVariable MessageBeingBuilt {
342            get { return PrepareBuilder(); }
343          }
344         
345          public override Builder Clear() {
346            result = DefaultInstance;
347            resultIsReadOnly = true;
348            return this;
349          }
350         
351          public override Builder Clone() {
352            if (resultIsReadOnly) {
353              return new Builder(result);
354            } else {
355              return new Builder().MergeFrom(result);
356            }
357          }
358         
359          public override pbd::MessageDescriptor DescriptorForType {
360            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Descriptor; }
361          }
362         
363          public override IntegerVariable DefaultInstanceForType {
364            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.DefaultInstance; }
365          }
366         
367          public override IntegerVariable BuildPartial() {
368            if (resultIsReadOnly) {
369              return result;
370            }
371            resultIsReadOnly = true;
372            return result.MakeReadOnly();
373          }
374         
375          public override Builder MergeFrom(pb::IMessage other) {
376            if (other is IntegerVariable) {
377              return MergeFrom((IntegerVariable) other);
378            } else {
379              base.MergeFrom(other);
380              return this;
381            }
382          }
383         
384          public override Builder MergeFrom(IntegerVariable other) {
385            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.DefaultInstance) return this;
386            PrepareBuilder();
387            if (other.HasName) {
388              Name = other.Name;
389            }
390            if (other.HasData) {
391              Data = other.Data;
392            }
393            this.MergeUnknownFields(other.UnknownFields);
394            return this;
395          }
396         
397          public override Builder MergeFrom(pb::ICodedInputStream input) {
398            return MergeFrom(input, pb::ExtensionRegistry.Empty);
399          }
400         
401          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
402            PrepareBuilder();
403            pb::UnknownFieldSet.Builder unknownFields = null;
404            uint tag;
405            string field_name;
406            while (input.ReadTag(out tag, out field_name)) {
407              if(tag == 0 && field_name != null) {
408                int field_ordinal = global::System.Array.BinarySearch(_integerVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
409                if(field_ordinal >= 0)
410                  tag = _integerVariableFieldTags[field_ordinal];
411                else {
412                  if (unknownFields == null) {
413                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
414                  }
415                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
416                  continue;
417                }
418              }
419              switch (tag) {
420                case 0: {
421                  throw pb::InvalidProtocolBufferException.InvalidTag();
422                }
423                default: {
424                  if (pb::WireFormat.IsEndGroupTag(tag)) {
425                    if (unknownFields != null) {
426                      this.UnknownFields = unknownFields.Build();
427                    }
428                    return this;
429                  }
430                  if (unknownFields == null) {
431                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
432                  }
433                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
434                  break;
435                }
436                case 10: {
437                  result.hasName = input.ReadString(ref result.name_);
438                  break;
439                }
440                case 16: {
441                  result.hasData = input.ReadInt32(ref result.data_);
442                  break;
443                }
444              }
445            }
446           
447            if (unknownFields != null) {
448              this.UnknownFields = unknownFields.Build();
449            }
450            return this;
451          }
452         
453         
454          public bool HasName {
455            get { return result.hasName; }
456          }
457          public string Name {
458            get { return result.Name; }
459            set { SetName(value); }
460          }
461          public Builder SetName(string value) {
462            pb::ThrowHelper.ThrowIfNull(value, "value");
463            PrepareBuilder();
464            result.hasName = true;
465            result.name_ = value;
466            return this;
467          }
468          public Builder ClearName() {
469            PrepareBuilder();
470            result.hasName = false;
471            result.name_ = "";
472            return this;
473          }
474         
475          public bool HasData {
476            get { return result.hasData; }
477          }
478          public int Data {
479            get { return result.Data; }
480            set { SetData(value); }
481          }
482          public Builder SetData(int value) {
483            PrepareBuilder();
484            result.hasData = true;
485            result.data_ = value;
486            return this;
487          }
488          public Builder ClearData() {
489            PrepareBuilder();
490            result.hasData = false;
491            result.data_ = 0;
492            return this;
493          }
494        }
495        static IntegerVariable() {
496          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
497        }
498      }
499     
500      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
501      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
502      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
503      public sealed partial class IntegerArrayVariable : pb::GeneratedMessage<IntegerArrayVariable, IntegerArrayVariable.Builder> {
504        private IntegerArrayVariable() { }
505        private static readonly IntegerArrayVariable defaultInstance = new IntegerArrayVariable().MakeReadOnly();
506        private static readonly string[] _integerArrayVariableFieldNames = new string[] { "data", "length", "name" };
507        private static readonly uint[] _integerArrayVariableFieldTags = new uint[] { 16, 24, 10 };
508        public static IntegerArrayVariable DefaultInstance {
509          get { return defaultInstance; }
510        }
511       
512        public override IntegerArrayVariable DefaultInstanceForType {
513          get { return DefaultInstance; }
514        }
515       
516        protected override IntegerArrayVariable ThisMessage {
517          get { return this; }
518        }
519       
520        public static pbd::MessageDescriptor Descriptor {
521          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor; }
522        }
523       
524        protected override pb::FieldAccess.FieldAccessorTable<IntegerArrayVariable, IntegerArrayVariable.Builder> InternalFieldAccessors {
525          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__FieldAccessorTable; }
526        }
527       
528        public const int NameFieldNumber = 1;
529        private bool hasName;
530        private string name_ = "";
531        public bool HasName {
532          get { return hasName; }
533        }
534        public string Name {
535          get { return name_; }
536        }
537       
538        public const int DataFieldNumber = 2;
539        private pbc::PopsicleList<int> data_ = new pbc::PopsicleList<int>();
540        public scg::IList<int> DataList {
541          get { return pbc::Lists.AsReadOnly(data_); }
542        }
543        public int DataCount {
544          get { return data_.Count; }
545        }
546        public int GetData(int index) {
547          return data_[index];
548        }
549       
550        public const int LengthFieldNumber = 3;
551        private bool hasLength;
552        private int length_;
553        public bool HasLength {
554          get { return hasLength; }
555        }
556        public int Length {
557          get { return length_; }
558        }
559       
560        public override bool IsInitialized {
561          get {
562            if (!hasName) return false;
563            return true;
564          }
565        }
566       
567        public override void WriteTo(pb::ICodedOutputStream output) {
568          int size = SerializedSize;
569          string[] field_names = _integerArrayVariableFieldNames;
570          if (hasName) {
571            output.WriteString(1, field_names[2], Name);
572          }
573          if (data_.Count > 0) {
574            output.WriteInt32Array(2, field_names[0], data_);
575          }
576          if (hasLength) {
577            output.WriteInt32(3, field_names[1], Length);
578          }
579          UnknownFields.WriteTo(output);
580        }
581       
582        private int memoizedSerializedSize = -1;
583        public override int SerializedSize {
584          get {
585            int size = memoizedSerializedSize;
586            if (size != -1) return size;
587           
588            size = 0;
589            if (hasName) {
590              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
591            }
592            {
593              int dataSize = 0;
594              foreach (int element in DataList) {
595                dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
596              }
597              size += dataSize;
598              size += 1 * data_.Count;
599            }
600            if (hasLength) {
601              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
602            }
603            size += UnknownFields.SerializedSize;
604            memoizedSerializedSize = size;
605            return size;
606          }
607        }
608       
609        public static IntegerArrayVariable ParseFrom(pb::ByteString data) {
610          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
611        }
612        public static IntegerArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
613          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
614        }
615        public static IntegerArrayVariable ParseFrom(byte[] data) {
616          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
617        }
618        public static IntegerArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
619          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
620        }
621        public static IntegerArrayVariable ParseFrom(global::System.IO.Stream input) {
622          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
623        }
624        public static IntegerArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
625          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
626        }
627        public static IntegerArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
628          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
629        }
630        public static IntegerArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
631          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
632        }
633        public static IntegerArrayVariable ParseFrom(pb::ICodedInputStream input) {
634          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
635        }
636        public static IntegerArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
637          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
638        }
639        private IntegerArrayVariable MakeReadOnly() {
640          data_.MakeReadOnly();
641          return this;
642        }
643       
644        public static Builder CreateBuilder() { return new Builder(); }
645        public override Builder ToBuilder() { return CreateBuilder(this); }
646        public override Builder CreateBuilderForType() { return new Builder(); }
647        public static Builder CreateBuilder(IntegerArrayVariable prototype) {
648          return new Builder(prototype);
649        }
650       
651        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
652        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
653        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
654        public sealed partial class Builder : pb::GeneratedBuilder<IntegerArrayVariable, Builder> {
655          protected override Builder ThisBuilder {
656            get { return this; }
657          }
658          public Builder() {
659            result = DefaultInstance;
660            resultIsReadOnly = true;
661          }
662          internal Builder(IntegerArrayVariable cloneFrom) {
663            result = cloneFrom;
664            resultIsReadOnly = true;
665          }
666         
667          private bool resultIsReadOnly;
668          private IntegerArrayVariable result;
669         
670          private IntegerArrayVariable PrepareBuilder() {
671            if (resultIsReadOnly) {
672              IntegerArrayVariable original = result;
673              result = new IntegerArrayVariable();
674              resultIsReadOnly = false;
675              MergeFrom(original);
676            }
677            return result;
678          }
679         
680          public override bool IsInitialized {
681            get { return result.IsInitialized; }
682          }
683         
684          protected override IntegerArrayVariable MessageBeingBuilt {
685            get { return PrepareBuilder(); }
686          }
687         
688          public override Builder Clear() {
689            result = DefaultInstance;
690            resultIsReadOnly = true;
691            return this;
692          }
693         
694          public override Builder Clone() {
695            if (resultIsReadOnly) {
696              return new Builder(result);
697            } else {
698              return new Builder().MergeFrom(result);
699            }
700          }
701         
702          public override pbd::MessageDescriptor DescriptorForType {
703            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Descriptor; }
704          }
705         
706          public override IntegerArrayVariable DefaultInstanceForType {
707            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.DefaultInstance; }
708          }
709         
710          public override IntegerArrayVariable BuildPartial() {
711            if (resultIsReadOnly) {
712              return result;
713            }
714            resultIsReadOnly = true;
715            return result.MakeReadOnly();
716          }
717         
718          public override Builder MergeFrom(pb::IMessage other) {
719            if (other is IntegerArrayVariable) {
720              return MergeFrom((IntegerArrayVariable) other);
721            } else {
722              base.MergeFrom(other);
723              return this;
724            }
725          }
726         
727          public override Builder MergeFrom(IntegerArrayVariable other) {
728            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.DefaultInstance) return this;
729            PrepareBuilder();
730            if (other.HasName) {
731              Name = other.Name;
732            }
733            if (other.data_.Count != 0) {
734              result.data_.Add(other.data_);
735            }
736            if (other.HasLength) {
737              Length = other.Length;
738            }
739            this.MergeUnknownFields(other.UnknownFields);
740            return this;
741          }
742         
743          public override Builder MergeFrom(pb::ICodedInputStream input) {
744            return MergeFrom(input, pb::ExtensionRegistry.Empty);
745          }
746         
747          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
748            PrepareBuilder();
749            pb::UnknownFieldSet.Builder unknownFields = null;
750            uint tag;
751            string field_name;
752            while (input.ReadTag(out tag, out field_name)) {
753              if(tag == 0 && field_name != null) {
754                int field_ordinal = global::System.Array.BinarySearch(_integerArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
755                if(field_ordinal >= 0)
756                  tag = _integerArrayVariableFieldTags[field_ordinal];
757                else {
758                  if (unknownFields == null) {
759                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
760                  }
761                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
762                  continue;
763                }
764              }
765              switch (tag) {
766                case 0: {
767                  throw pb::InvalidProtocolBufferException.InvalidTag();
768                }
769                default: {
770                  if (pb::WireFormat.IsEndGroupTag(tag)) {
771                    if (unknownFields != null) {
772                      this.UnknownFields = unknownFields.Build();
773                    }
774                    return this;
775                  }
776                  if (unknownFields == null) {
777                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
778                  }
779                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
780                  break;
781                }
782                case 10: {
783                  result.hasName = input.ReadString(ref result.name_);
784                  break;
785                }
786                case 18:
787                case 16: {
788                  input.ReadInt32Array(tag, field_name, result.data_);
789                  break;
790                }
791                case 24: {
792                  result.hasLength = input.ReadInt32(ref result.length_);
793                  break;
794                }
795              }
796            }
797           
798            if (unknownFields != null) {
799              this.UnknownFields = unknownFields.Build();
800            }
801            return this;
802          }
803         
804         
805          public bool HasName {
806            get { return result.hasName; }
807          }
808          public string Name {
809            get { return result.Name; }
810            set { SetName(value); }
811          }
812          public Builder SetName(string value) {
813            pb::ThrowHelper.ThrowIfNull(value, "value");
814            PrepareBuilder();
815            result.hasName = true;
816            result.name_ = value;
817            return this;
818          }
819          public Builder ClearName() {
820            PrepareBuilder();
821            result.hasName = false;
822            result.name_ = "";
823            return this;
824          }
825         
826          public pbc::IPopsicleList<int> DataList {
827            get { return PrepareBuilder().data_; }
828          }
829          public int DataCount {
830            get { return result.DataCount; }
831          }
832          public int GetData(int index) {
833            return result.GetData(index);
834          }
835          public Builder SetData(int index, int value) {
836            PrepareBuilder();
837            result.data_[index] = value;
838            return this;
839          }
840          public Builder AddData(int value) {
841            PrepareBuilder();
842            result.data_.Add(value);
843            return this;
844          }
845          public Builder AddRangeData(scg::IEnumerable<int> values) {
846            PrepareBuilder();
847            result.data_.Add(values);
848            return this;
849          }
850          public Builder ClearData() {
851            PrepareBuilder();
852            result.data_.Clear();
853            return this;
854          }
855         
856          public bool HasLength {
857            get { return result.hasLength; }
858          }
859          public int Length {
860            get { return result.Length; }
861            set { SetLength(value); }
862          }
863          public Builder SetLength(int value) {
864            PrepareBuilder();
865            result.hasLength = true;
866            result.length_ = value;
867            return this;
868          }
869          public Builder ClearLength() {
870            PrepareBuilder();
871            result.hasLength = false;
872            result.length_ = 0;
873            return this;
874          }
875        }
876        static IntegerArrayVariable() {
877          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
878        }
879      }
880     
881      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
882      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
883      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
884      public sealed partial class DoubleVariable : pb::GeneratedMessage<DoubleVariable, DoubleVariable.Builder> {
885        private DoubleVariable() { }
886        private static readonly DoubleVariable defaultInstance = new DoubleVariable().MakeReadOnly();
887        private static readonly string[] _doubleVariableFieldNames = new string[] { "data", "name" };
888        private static readonly uint[] _doubleVariableFieldTags = new uint[] { 17, 10 };
889        public static DoubleVariable DefaultInstance {
890          get { return defaultInstance; }
891        }
892       
893        public override DoubleVariable DefaultInstanceForType {
894          get { return DefaultInstance; }
895        }
896       
897        protected override DoubleVariable ThisMessage {
898          get { return this; }
899        }
900       
901        public static pbd::MessageDescriptor Descriptor {
902          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor; }
903        }
904       
905        protected override pb::FieldAccess.FieldAccessorTable<DoubleVariable, DoubleVariable.Builder> InternalFieldAccessors {
906          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__FieldAccessorTable; }
907        }
908       
909        public const int NameFieldNumber = 1;
910        private bool hasName;
911        private string name_ = "";
912        public bool HasName {
913          get { return hasName; }
914        }
915        public string Name {
916          get { return name_; }
917        }
918       
919        public const int DataFieldNumber = 2;
920        private bool hasData;
921        private double data_;
922        public bool HasData {
923          get { return hasData; }
924        }
925        public double Data {
926          get { return data_; }
927        }
928       
929        public override bool IsInitialized {
930          get {
931            if (!hasName) return false;
932            return true;
933          }
934        }
935       
936        public override void WriteTo(pb::ICodedOutputStream output) {
937          int size = SerializedSize;
938          string[] field_names = _doubleVariableFieldNames;
939          if (hasName) {
940            output.WriteString(1, field_names[1], Name);
941          }
942          if (hasData) {
943            output.WriteDouble(2, field_names[0], Data);
944          }
945          UnknownFields.WriteTo(output);
946        }
947       
948        private int memoizedSerializedSize = -1;
949        public override int SerializedSize {
950          get {
951            int size = memoizedSerializedSize;
952            if (size != -1) return size;
953           
954            size = 0;
955            if (hasName) {
956              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
957            }
958            if (hasData) {
959              size += pb::CodedOutputStream.ComputeDoubleSize(2, Data);
960            }
961            size += UnknownFields.SerializedSize;
962            memoizedSerializedSize = size;
963            return size;
964          }
965        }
966       
967        public static DoubleVariable ParseFrom(pb::ByteString data) {
968          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
969        }
970        public static DoubleVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
971          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
972        }
973        public static DoubleVariable ParseFrom(byte[] data) {
974          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
975        }
976        public static DoubleVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
977          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
978        }
979        public static DoubleVariable ParseFrom(global::System.IO.Stream input) {
980          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
981        }
982        public static DoubleVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
983          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
984        }
985        public static DoubleVariable ParseDelimitedFrom(global::System.IO.Stream input) {
986          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
987        }
988        public static DoubleVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
989          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
990        }
991        public static DoubleVariable ParseFrom(pb::ICodedInputStream input) {
992          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
993        }
994        public static DoubleVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
995          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
996        }
997        private DoubleVariable MakeReadOnly() {
998          return this;
999        }
1000       
1001        public static Builder CreateBuilder() { return new Builder(); }
1002        public override Builder ToBuilder() { return CreateBuilder(this); }
1003        public override Builder CreateBuilderForType() { return new Builder(); }
1004        public static Builder CreateBuilder(DoubleVariable prototype) {
1005          return new Builder(prototype);
1006        }
1007       
1008        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1009        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1010        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1011        public sealed partial class Builder : pb::GeneratedBuilder<DoubleVariable, Builder> {
1012          protected override Builder ThisBuilder {
1013            get { return this; }
1014          }
1015          public Builder() {
1016            result = DefaultInstance;
1017            resultIsReadOnly = true;
1018          }
1019          internal Builder(DoubleVariable cloneFrom) {
1020            result = cloneFrom;
1021            resultIsReadOnly = true;
1022          }
1023         
1024          private bool resultIsReadOnly;
1025          private DoubleVariable result;
1026         
1027          private DoubleVariable PrepareBuilder() {
1028            if (resultIsReadOnly) {
1029              DoubleVariable original = result;
1030              result = new DoubleVariable();
1031              resultIsReadOnly = false;
1032              MergeFrom(original);
1033            }
1034            return result;
1035          }
1036         
1037          public override bool IsInitialized {
1038            get { return result.IsInitialized; }
1039          }
1040         
1041          protected override DoubleVariable MessageBeingBuilt {
1042            get { return PrepareBuilder(); }
1043          }
1044         
1045          public override Builder Clear() {
1046            result = DefaultInstance;
1047            resultIsReadOnly = true;
1048            return this;
1049          }
1050         
1051          public override Builder Clone() {
1052            if (resultIsReadOnly) {
1053              return new Builder(result);
1054            } else {
1055              return new Builder().MergeFrom(result);
1056            }
1057          }
1058         
1059          public override pbd::MessageDescriptor DescriptorForType {
1060            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Descriptor; }
1061          }
1062         
1063          public override DoubleVariable DefaultInstanceForType {
1064            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.DefaultInstance; }
1065          }
1066         
1067          public override DoubleVariable BuildPartial() {
1068            if (resultIsReadOnly) {
1069              return result;
1070            }
1071            resultIsReadOnly = true;
1072            return result.MakeReadOnly();
1073          }
1074         
1075          public override Builder MergeFrom(pb::IMessage other) {
1076            if (other is DoubleVariable) {
1077              return MergeFrom((DoubleVariable) other);
1078            } else {
1079              base.MergeFrom(other);
1080              return this;
1081            }
1082          }
1083         
1084          public override Builder MergeFrom(DoubleVariable other) {
1085            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.DefaultInstance) return this;
1086            PrepareBuilder();
1087            if (other.HasName) {
1088              Name = other.Name;
1089            }
1090            if (other.HasData) {
1091              Data = other.Data;
1092            }
1093            this.MergeUnknownFields(other.UnknownFields);
1094            return this;
1095          }
1096         
1097          public override Builder MergeFrom(pb::ICodedInputStream input) {
1098            return MergeFrom(input, pb::ExtensionRegistry.Empty);
1099          }
1100         
1101          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1102            PrepareBuilder();
1103            pb::UnknownFieldSet.Builder unknownFields = null;
1104            uint tag;
1105            string field_name;
1106            while (input.ReadTag(out tag, out field_name)) {
1107              if(tag == 0 && field_name != null) {
1108                int field_ordinal = global::System.Array.BinarySearch(_doubleVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
1109                if(field_ordinal >= 0)
1110                  tag = _doubleVariableFieldTags[field_ordinal];
1111                else {
1112                  if (unknownFields == null) {
1113                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1114                  }
1115                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1116                  continue;
1117                }
1118              }
1119              switch (tag) {
1120                case 0: {
1121                  throw pb::InvalidProtocolBufferException.InvalidTag();
1122                }
1123                default: {
1124                  if (pb::WireFormat.IsEndGroupTag(tag)) {
1125                    if (unknownFields != null) {
1126                      this.UnknownFields = unknownFields.Build();
1127                    }
1128                    return this;
1129                  }
1130                  if (unknownFields == null) {
1131                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1132                  }
1133                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1134                  break;
1135                }
1136                case 10: {
1137                  result.hasName = input.ReadString(ref result.name_);
1138                  break;
1139                }
1140                case 17: {
1141                  result.hasData = input.ReadDouble(ref result.data_);
1142                  break;
1143                }
1144              }
1145            }
1146           
1147            if (unknownFields != null) {
1148              this.UnknownFields = unknownFields.Build();
1149            }
1150            return this;
1151          }
1152         
1153         
1154          public bool HasName {
1155            get { return result.hasName; }
1156          }
1157          public string Name {
1158            get { return result.Name; }
1159            set { SetName(value); }
1160          }
1161          public Builder SetName(string value) {
1162            pb::ThrowHelper.ThrowIfNull(value, "value");
1163            PrepareBuilder();
1164            result.hasName = true;
1165            result.name_ = value;
1166            return this;
1167          }
1168          public Builder ClearName() {
1169            PrepareBuilder();
1170            result.hasName = false;
1171            result.name_ = "";
1172            return this;
1173          }
1174         
1175          public bool HasData {
1176            get { return result.hasData; }
1177          }
1178          public double Data {
1179            get { return result.Data; }
1180            set { SetData(value); }
1181          }
1182          public Builder SetData(double value) {
1183            PrepareBuilder();
1184            result.hasData = true;
1185            result.data_ = value;
1186            return this;
1187          }
1188          public Builder ClearData() {
1189            PrepareBuilder();
1190            result.hasData = false;
1191            result.data_ = 0D;
1192            return this;
1193          }
1194        }
1195        static DoubleVariable() {
1196          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
1197        }
1198      }
1199     
1200      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1201      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1202      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1203      public sealed partial class DoubleArrayVariable : pb::GeneratedMessage<DoubleArrayVariable, DoubleArrayVariable.Builder> {
1204        private DoubleArrayVariable() { }
1205        private static readonly DoubleArrayVariable defaultInstance = new DoubleArrayVariable().MakeReadOnly();
1206        private static readonly string[] _doubleArrayVariableFieldNames = new string[] { "data", "length", "name" };
1207        private static readonly uint[] _doubleArrayVariableFieldTags = new uint[] { 17, 24, 10 };
1208        public static DoubleArrayVariable DefaultInstance {
1209          get { return defaultInstance; }
1210        }
1211       
1212        public override DoubleArrayVariable DefaultInstanceForType {
1213          get { return DefaultInstance; }
1214        }
1215       
1216        protected override DoubleArrayVariable ThisMessage {
1217          get { return this; }
1218        }
1219       
1220        public static pbd::MessageDescriptor Descriptor {
1221          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor; }
1222        }
1223       
1224        protected override pb::FieldAccess.FieldAccessorTable<DoubleArrayVariable, DoubleArrayVariable.Builder> InternalFieldAccessors {
1225          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__FieldAccessorTable; }
1226        }
1227       
1228        public const int NameFieldNumber = 1;
1229        private bool hasName;
1230        private string name_ = "";
1231        public bool HasName {
1232          get { return hasName; }
1233        }
1234        public string Name {
1235          get { return name_; }
1236        }
1237       
1238        public const int DataFieldNumber = 2;
1239        private pbc::PopsicleList<double> data_ = new pbc::PopsicleList<double>();
1240        public scg::IList<double> DataList {
1241          get { return pbc::Lists.AsReadOnly(data_); }
1242        }
1243        public int DataCount {
1244          get { return data_.Count; }
1245        }
1246        public double GetData(int index) {
1247          return data_[index];
1248        }
1249       
1250        public const int LengthFieldNumber = 3;
1251        private bool hasLength;
1252        private int length_;
1253        public bool HasLength {
1254          get { return hasLength; }
1255        }
1256        public int Length {
1257          get { return length_; }
1258        }
1259       
1260        public override bool IsInitialized {
1261          get {
1262            if (!hasName) return false;
1263            return true;
1264          }
1265        }
1266       
1267        public override void WriteTo(pb::ICodedOutputStream output) {
1268          int size = SerializedSize;
1269          string[] field_names = _doubleArrayVariableFieldNames;
1270          if (hasName) {
1271            output.WriteString(1, field_names[2], Name);
1272          }
1273          if (data_.Count > 0) {
1274            output.WriteDoubleArray(2, field_names[0], data_);
1275          }
1276          if (hasLength) {
1277            output.WriteInt32(3, field_names[1], Length);
1278          }
1279          UnknownFields.WriteTo(output);
1280        }
1281       
1282        private int memoizedSerializedSize = -1;
1283        public override int SerializedSize {
1284          get {
1285            int size = memoizedSerializedSize;
1286            if (size != -1) return size;
1287           
1288            size = 0;
1289            if (hasName) {
1290              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
1291            }
1292            {
1293              int dataSize = 0;
1294              dataSize = 8 * data_.Count;
1295              size += dataSize;
1296              size += 1 * data_.Count;
1297            }
1298            if (hasLength) {
1299              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
1300            }
1301            size += UnknownFields.SerializedSize;
1302            memoizedSerializedSize = size;
1303            return size;
1304          }
1305        }
1306       
1307        public static DoubleArrayVariable ParseFrom(pb::ByteString data) {
1308          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1309        }
1310        public static DoubleArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
1311          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1312        }
1313        public static DoubleArrayVariable ParseFrom(byte[] data) {
1314          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1315        }
1316        public static DoubleArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
1317          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1318        }
1319        public static DoubleArrayVariable ParseFrom(global::System.IO.Stream input) {
1320          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1321        }
1322        public static DoubleArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1323          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1324        }
1325        public static DoubleArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
1326          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
1327        }
1328        public static DoubleArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1329          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
1330        }
1331        public static DoubleArrayVariable ParseFrom(pb::ICodedInputStream input) {
1332          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1333        }
1334        public static DoubleArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1335          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1336        }
1337        private DoubleArrayVariable MakeReadOnly() {
1338          data_.MakeReadOnly();
1339          return this;
1340        }
1341       
1342        public static Builder CreateBuilder() { return new Builder(); }
1343        public override Builder ToBuilder() { return CreateBuilder(this); }
1344        public override Builder CreateBuilderForType() { return new Builder(); }
1345        public static Builder CreateBuilder(DoubleArrayVariable prototype) {
1346          return new Builder(prototype);
1347        }
1348       
1349        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1350        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1351        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1352        public sealed partial class Builder : pb::GeneratedBuilder<DoubleArrayVariable, Builder> {
1353          protected override Builder ThisBuilder {
1354            get { return this; }
1355          }
1356          public Builder() {
1357            result = DefaultInstance;
1358            resultIsReadOnly = true;
1359          }
1360          internal Builder(DoubleArrayVariable cloneFrom) {
1361            result = cloneFrom;
1362            resultIsReadOnly = true;
1363          }
1364         
1365          private bool resultIsReadOnly;
1366          private DoubleArrayVariable result;
1367         
1368          private DoubleArrayVariable PrepareBuilder() {
1369            if (resultIsReadOnly) {
1370              DoubleArrayVariable original = result;
1371              result = new DoubleArrayVariable();
1372              resultIsReadOnly = false;
1373              MergeFrom(original);
1374            }
1375            return result;
1376          }
1377         
1378          public override bool IsInitialized {
1379            get { return result.IsInitialized; }
1380          }
1381         
1382          protected override DoubleArrayVariable MessageBeingBuilt {
1383            get { return PrepareBuilder(); }
1384          }
1385         
1386          public override Builder Clear() {
1387            result = DefaultInstance;
1388            resultIsReadOnly = true;
1389            return this;
1390          }
1391         
1392          public override Builder Clone() {
1393            if (resultIsReadOnly) {
1394              return new Builder(result);
1395            } else {
1396              return new Builder().MergeFrom(result);
1397            }
1398          }
1399         
1400          public override pbd::MessageDescriptor DescriptorForType {
1401            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Descriptor; }
1402          }
1403         
1404          public override DoubleArrayVariable DefaultInstanceForType {
1405            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.DefaultInstance; }
1406          }
1407         
1408          public override DoubleArrayVariable BuildPartial() {
1409            if (resultIsReadOnly) {
1410              return result;
1411            }
1412            resultIsReadOnly = true;
1413            return result.MakeReadOnly();
1414          }
1415         
1416          public override Builder MergeFrom(pb::IMessage other) {
1417            if (other is DoubleArrayVariable) {
1418              return MergeFrom((DoubleArrayVariable) other);
1419            } else {
1420              base.MergeFrom(other);
1421              return this;
1422            }
1423          }
1424         
1425          public override Builder MergeFrom(DoubleArrayVariable other) {
1426            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.DefaultInstance) return this;
1427            PrepareBuilder();
1428            if (other.HasName) {
1429              Name = other.Name;
1430            }
1431            if (other.data_.Count != 0) {
1432              result.data_.Add(other.data_);
1433            }
1434            if (other.HasLength) {
1435              Length = other.Length;
1436            }
1437            this.MergeUnknownFields(other.UnknownFields);
1438            return this;
1439          }
1440         
1441          public override Builder MergeFrom(pb::ICodedInputStream input) {
1442            return MergeFrom(input, pb::ExtensionRegistry.Empty);
1443          }
1444         
1445          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1446            PrepareBuilder();
1447            pb::UnknownFieldSet.Builder unknownFields = null;
1448            uint tag;
1449            string field_name;
1450            while (input.ReadTag(out tag, out field_name)) {
1451              if(tag == 0 && field_name != null) {
1452                int field_ordinal = global::System.Array.BinarySearch(_doubleArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
1453                if(field_ordinal >= 0)
1454                  tag = _doubleArrayVariableFieldTags[field_ordinal];
1455                else {
1456                  if (unknownFields == null) {
1457                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1458                  }
1459                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1460                  continue;
1461                }
1462              }
1463              switch (tag) {
1464                case 0: {
1465                  throw pb::InvalidProtocolBufferException.InvalidTag();
1466                }
1467                default: {
1468                  if (pb::WireFormat.IsEndGroupTag(tag)) {
1469                    if (unknownFields != null) {
1470                      this.UnknownFields = unknownFields.Build();
1471                    }
1472                    return this;
1473                  }
1474                  if (unknownFields == null) {
1475                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1476                  }
1477                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1478                  break;
1479                }
1480                case 10: {
1481                  result.hasName = input.ReadString(ref result.name_);
1482                  break;
1483                }
1484                case 18:
1485                case 17: {
1486                  input.ReadDoubleArray(tag, field_name, result.data_);
1487                  break;
1488                }
1489                case 24: {
1490                  result.hasLength = input.ReadInt32(ref result.length_);
1491                  break;
1492                }
1493              }
1494            }
1495           
1496            if (unknownFields != null) {
1497              this.UnknownFields = unknownFields.Build();
1498            }
1499            return this;
1500          }
1501         
1502         
1503          public bool HasName {
1504            get { return result.hasName; }
1505          }
1506          public string Name {
1507            get { return result.Name; }
1508            set { SetName(value); }
1509          }
1510          public Builder SetName(string value) {
1511            pb::ThrowHelper.ThrowIfNull(value, "value");
1512            PrepareBuilder();
1513            result.hasName = true;
1514            result.name_ = value;
1515            return this;
1516          }
1517          public Builder ClearName() {
1518            PrepareBuilder();
1519            result.hasName = false;
1520            result.name_ = "";
1521            return this;
1522          }
1523         
1524          public pbc::IPopsicleList<double> DataList {
1525            get { return PrepareBuilder().data_; }
1526          }
1527          public int DataCount {
1528            get { return result.DataCount; }
1529          }
1530          public double GetData(int index) {
1531            return result.GetData(index);
1532          }
1533          public Builder SetData(int index, double value) {
1534            PrepareBuilder();
1535            result.data_[index] = value;
1536            return this;
1537          }
1538          public Builder AddData(double value) {
1539            PrepareBuilder();
1540            result.data_.Add(value);
1541            return this;
1542          }
1543          public Builder AddRangeData(scg::IEnumerable<double> values) {
1544            PrepareBuilder();
1545            result.data_.Add(values);
1546            return this;
1547          }
1548          public Builder ClearData() {
1549            PrepareBuilder();
1550            result.data_.Clear();
1551            return this;
1552          }
1553         
1554          public bool HasLength {
1555            get { return result.hasLength; }
1556          }
1557          public int Length {
1558            get { return result.Length; }
1559            set { SetLength(value); }
1560          }
1561          public Builder SetLength(int value) {
1562            PrepareBuilder();
1563            result.hasLength = true;
1564            result.length_ = value;
1565            return this;
1566          }
1567          public Builder ClearLength() {
1568            PrepareBuilder();
1569            result.hasLength = false;
1570            result.length_ = 0;
1571            return this;
1572          }
1573        }
1574        static DoubleArrayVariable() {
1575          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
1576        }
1577      }
1578     
1579      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1580      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1581      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1582      public sealed partial class BoolVariable : pb::GeneratedMessage<BoolVariable, BoolVariable.Builder> {
1583        private BoolVariable() { }
1584        private static readonly BoolVariable defaultInstance = new BoolVariable().MakeReadOnly();
1585        private static readonly string[] _boolVariableFieldNames = new string[] { "data", "name" };
1586        private static readonly uint[] _boolVariableFieldTags = new uint[] { 16, 10 };
1587        public static BoolVariable DefaultInstance {
1588          get { return defaultInstance; }
1589        }
1590       
1591        public override BoolVariable DefaultInstanceForType {
1592          get { return DefaultInstance; }
1593        }
1594       
1595        protected override BoolVariable ThisMessage {
1596          get { return this; }
1597        }
1598       
1599        public static pbd::MessageDescriptor Descriptor {
1600          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor; }
1601        }
1602       
1603        protected override pb::FieldAccess.FieldAccessorTable<BoolVariable, BoolVariable.Builder> InternalFieldAccessors {
1604          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__FieldAccessorTable; }
1605        }
1606       
1607        public const int NameFieldNumber = 1;
1608        private bool hasName;
1609        private string name_ = "";
1610        public bool HasName {
1611          get { return hasName; }
1612        }
1613        public string Name {
1614          get { return name_; }
1615        }
1616       
1617        public const int DataFieldNumber = 2;
1618        private bool hasData;
1619        private bool data_;
1620        public bool HasData {
1621          get { return hasData; }
1622        }
1623        public bool Data {
1624          get { return data_; }
1625        }
1626       
1627        public override bool IsInitialized {
1628          get {
1629            if (!hasName) return false;
1630            return true;
1631          }
1632        }
1633       
1634        public override void WriteTo(pb::ICodedOutputStream output) {
1635          int size = SerializedSize;
1636          string[] field_names = _boolVariableFieldNames;
1637          if (hasName) {
1638            output.WriteString(1, field_names[1], Name);
1639          }
1640          if (hasData) {
1641            output.WriteBool(2, field_names[0], Data);
1642          }
1643          UnknownFields.WriteTo(output);
1644        }
1645       
1646        private int memoizedSerializedSize = -1;
1647        public override int SerializedSize {
1648          get {
1649            int size = memoizedSerializedSize;
1650            if (size != -1) return size;
1651           
1652            size = 0;
1653            if (hasName) {
1654              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
1655            }
1656            if (hasData) {
1657              size += pb::CodedOutputStream.ComputeBoolSize(2, Data);
1658            }
1659            size += UnknownFields.SerializedSize;
1660            memoizedSerializedSize = size;
1661            return size;
1662          }
1663        }
1664       
1665        public static BoolVariable ParseFrom(pb::ByteString data) {
1666          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1667        }
1668        public static BoolVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
1669          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1670        }
1671        public static BoolVariable ParseFrom(byte[] data) {
1672          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1673        }
1674        public static BoolVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
1675          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1676        }
1677        public static BoolVariable ParseFrom(global::System.IO.Stream input) {
1678          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1679        }
1680        public static BoolVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1681          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1682        }
1683        public static BoolVariable ParseDelimitedFrom(global::System.IO.Stream input) {
1684          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
1685        }
1686        public static BoolVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1687          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
1688        }
1689        public static BoolVariable ParseFrom(pb::ICodedInputStream input) {
1690          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1691        }
1692        public static BoolVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1693          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1694        }
1695        private BoolVariable MakeReadOnly() {
1696          return this;
1697        }
1698       
1699        public static Builder CreateBuilder() { return new Builder(); }
1700        public override Builder ToBuilder() { return CreateBuilder(this); }
1701        public override Builder CreateBuilderForType() { return new Builder(); }
1702        public static Builder CreateBuilder(BoolVariable prototype) {
1703          return new Builder(prototype);
1704        }
1705       
1706        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1707        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1708        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1709        public sealed partial class Builder : pb::GeneratedBuilder<BoolVariable, Builder> {
1710          protected override Builder ThisBuilder {
1711            get { return this; }
1712          }
1713          public Builder() {
1714            result = DefaultInstance;
1715            resultIsReadOnly = true;
1716          }
1717          internal Builder(BoolVariable cloneFrom) {
1718            result = cloneFrom;
1719            resultIsReadOnly = true;
1720          }
1721         
1722          private bool resultIsReadOnly;
1723          private BoolVariable result;
1724         
1725          private BoolVariable PrepareBuilder() {
1726            if (resultIsReadOnly) {
1727              BoolVariable original = result;
1728              result = new BoolVariable();
1729              resultIsReadOnly = false;
1730              MergeFrom(original);
1731            }
1732            return result;
1733          }
1734         
1735          public override bool IsInitialized {
1736            get { return result.IsInitialized; }
1737          }
1738         
1739          protected override BoolVariable MessageBeingBuilt {
1740            get { return PrepareBuilder(); }
1741          }
1742         
1743          public override Builder Clear() {
1744            result = DefaultInstance;
1745            resultIsReadOnly = true;
1746            return this;
1747          }
1748         
1749          public override Builder Clone() {
1750            if (resultIsReadOnly) {
1751              return new Builder(result);
1752            } else {
1753              return new Builder().MergeFrom(result);
1754            }
1755          }
1756         
1757          public override pbd::MessageDescriptor DescriptorForType {
1758            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Descriptor; }
1759          }
1760         
1761          public override BoolVariable DefaultInstanceForType {
1762            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.DefaultInstance; }
1763          }
1764         
1765          public override BoolVariable BuildPartial() {
1766            if (resultIsReadOnly) {
1767              return result;
1768            }
1769            resultIsReadOnly = true;
1770            return result.MakeReadOnly();
1771          }
1772         
1773          public override Builder MergeFrom(pb::IMessage other) {
1774            if (other is BoolVariable) {
1775              return MergeFrom((BoolVariable) other);
1776            } else {
1777              base.MergeFrom(other);
1778              return this;
1779            }
1780          }
1781         
1782          public override Builder MergeFrom(BoolVariable other) {
1783            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.DefaultInstance) return this;
1784            PrepareBuilder();
1785            if (other.HasName) {
1786              Name = other.Name;
1787            }
1788            if (other.HasData) {
1789              Data = other.Data;
1790            }
1791            this.MergeUnknownFields(other.UnknownFields);
1792            return this;
1793          }
1794         
1795          public override Builder MergeFrom(pb::ICodedInputStream input) {
1796            return MergeFrom(input, pb::ExtensionRegistry.Empty);
1797          }
1798         
1799          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1800            PrepareBuilder();
1801            pb::UnknownFieldSet.Builder unknownFields = null;
1802            uint tag;
1803            string field_name;
1804            while (input.ReadTag(out tag, out field_name)) {
1805              if(tag == 0 && field_name != null) {
1806                int field_ordinal = global::System.Array.BinarySearch(_boolVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
1807                if(field_ordinal >= 0)
1808                  tag = _boolVariableFieldTags[field_ordinal];
1809                else {
1810                  if (unknownFields == null) {
1811                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1812                  }
1813                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1814                  continue;
1815                }
1816              }
1817              switch (tag) {
1818                case 0: {
1819                  throw pb::InvalidProtocolBufferException.InvalidTag();
1820                }
1821                default: {
1822                  if (pb::WireFormat.IsEndGroupTag(tag)) {
1823                    if (unknownFields != null) {
1824                      this.UnknownFields = unknownFields.Build();
1825                    }
1826                    return this;
1827                  }
1828                  if (unknownFields == null) {
1829                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1830                  }
1831                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1832                  break;
1833                }
1834                case 10: {
1835                  result.hasName = input.ReadString(ref result.name_);
1836                  break;
1837                }
1838                case 16: {
1839                  result.hasData = input.ReadBool(ref result.data_);
1840                  break;
1841                }
1842              }
1843            }
1844           
1845            if (unknownFields != null) {
1846              this.UnknownFields = unknownFields.Build();
1847            }
1848            return this;
1849          }
1850         
1851         
1852          public bool HasName {
1853            get { return result.hasName; }
1854          }
1855          public string Name {
1856            get { return result.Name; }
1857            set { SetName(value); }
1858          }
1859          public Builder SetName(string value) {
1860            pb::ThrowHelper.ThrowIfNull(value, "value");
1861            PrepareBuilder();
1862            result.hasName = true;
1863            result.name_ = value;
1864            return this;
1865          }
1866          public Builder ClearName() {
1867            PrepareBuilder();
1868            result.hasName = false;
1869            result.name_ = "";
1870            return this;
1871          }
1872         
1873          public bool HasData {
1874            get { return result.hasData; }
1875          }
1876          public bool Data {
1877            get { return result.Data; }
1878            set { SetData(value); }
1879          }
1880          public Builder SetData(bool value) {
1881            PrepareBuilder();
1882            result.hasData = true;
1883            result.data_ = value;
1884            return this;
1885          }
1886          public Builder ClearData() {
1887            PrepareBuilder();
1888            result.hasData = false;
1889            result.data_ = false;
1890            return this;
1891          }
1892        }
1893        static BoolVariable() {
1894          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
1895        }
1896      }
1897     
1898      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1899      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1900      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1901      public sealed partial class BoolArrayVariable : pb::GeneratedMessage<BoolArrayVariable, BoolArrayVariable.Builder> {
1902        private BoolArrayVariable() { }
1903        private static readonly BoolArrayVariable defaultInstance = new BoolArrayVariable().MakeReadOnly();
1904        private static readonly string[] _boolArrayVariableFieldNames = new string[] { "data", "length", "name" };
1905        private static readonly uint[] _boolArrayVariableFieldTags = new uint[] { 16, 24, 10 };
1906        public static BoolArrayVariable DefaultInstance {
1907          get { return defaultInstance; }
1908        }
1909       
1910        public override BoolArrayVariable DefaultInstanceForType {
1911          get { return DefaultInstance; }
1912        }
1913       
1914        protected override BoolArrayVariable ThisMessage {
1915          get { return this; }
1916        }
1917       
1918        public static pbd::MessageDescriptor Descriptor {
1919          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor; }
1920        }
1921       
1922        protected override pb::FieldAccess.FieldAccessorTable<BoolArrayVariable, BoolArrayVariable.Builder> InternalFieldAccessors {
1923          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__FieldAccessorTable; }
1924        }
1925       
1926        public const int NameFieldNumber = 1;
1927        private bool hasName;
1928        private string name_ = "";
1929        public bool HasName {
1930          get { return hasName; }
1931        }
1932        public string Name {
1933          get { return name_; }
1934        }
1935       
1936        public const int DataFieldNumber = 2;
1937        private pbc::PopsicleList<bool> data_ = new pbc::PopsicleList<bool>();
1938        public scg::IList<bool> DataList {
1939          get { return pbc::Lists.AsReadOnly(data_); }
1940        }
1941        public int DataCount {
1942          get { return data_.Count; }
1943        }
1944        public bool GetData(int index) {
1945          return data_[index];
1946        }
1947       
1948        public const int LengthFieldNumber = 3;
1949        private bool hasLength;
1950        private int length_;
1951        public bool HasLength {
1952          get { return hasLength; }
1953        }
1954        public int Length {
1955          get { return length_; }
1956        }
1957       
1958        public override bool IsInitialized {
1959          get {
1960            if (!hasName) return false;
1961            return true;
1962          }
1963        }
1964       
1965        public override void WriteTo(pb::ICodedOutputStream output) {
1966          int size = SerializedSize;
1967          string[] field_names = _boolArrayVariableFieldNames;
1968          if (hasName) {
1969            output.WriteString(1, field_names[2], Name);
1970          }
1971          if (data_.Count > 0) {
1972            output.WriteBoolArray(2, field_names[0], data_);
1973          }
1974          if (hasLength) {
1975            output.WriteInt32(3, field_names[1], Length);
1976          }
1977          UnknownFields.WriteTo(output);
1978        }
1979       
1980        private int memoizedSerializedSize = -1;
1981        public override int SerializedSize {
1982          get {
1983            int size = memoizedSerializedSize;
1984            if (size != -1) return size;
1985           
1986            size = 0;
1987            if (hasName) {
1988              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
1989            }
1990            {
1991              int dataSize = 0;
1992              dataSize = 1 * data_.Count;
1993              size += dataSize;
1994              size += 1 * data_.Count;
1995            }
1996            if (hasLength) {
1997              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
1998            }
1999            size += UnknownFields.SerializedSize;
2000            memoizedSerializedSize = size;
2001            return size;
2002          }
2003        }
2004       
2005        public static BoolArrayVariable ParseFrom(pb::ByteString data) {
2006          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2007        }
2008        public static BoolArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
2009          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2010        }
2011        public static BoolArrayVariable ParseFrom(byte[] data) {
2012          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2013        }
2014        public static BoolArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
2015          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2016        }
2017        public static BoolArrayVariable ParseFrom(global::System.IO.Stream input) {
2018          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2019        }
2020        public static BoolArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2021          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2022        }
2023        public static BoolArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
2024          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
2025        }
2026        public static BoolArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2027          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
2028        }
2029        public static BoolArrayVariable ParseFrom(pb::ICodedInputStream input) {
2030          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2031        }
2032        public static BoolArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2033          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2034        }
2035        private BoolArrayVariable MakeReadOnly() {
2036          data_.MakeReadOnly();
2037          return this;
2038        }
2039       
2040        public static Builder CreateBuilder() { return new Builder(); }
2041        public override Builder ToBuilder() { return CreateBuilder(this); }
2042        public override Builder CreateBuilderForType() { return new Builder(); }
2043        public static Builder CreateBuilder(BoolArrayVariable prototype) {
2044          return new Builder(prototype);
2045        }
2046       
2047        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2048        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2049        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2050        public sealed partial class Builder : pb::GeneratedBuilder<BoolArrayVariable, Builder> {
2051          protected override Builder ThisBuilder {
2052            get { return this; }
2053          }
2054          public Builder() {
2055            result = DefaultInstance;
2056            resultIsReadOnly = true;
2057          }
2058          internal Builder(BoolArrayVariable cloneFrom) {
2059            result = cloneFrom;
2060            resultIsReadOnly = true;
2061          }
2062         
2063          private bool resultIsReadOnly;
2064          private BoolArrayVariable result;
2065         
2066          private BoolArrayVariable PrepareBuilder() {
2067            if (resultIsReadOnly) {
2068              BoolArrayVariable original = result;
2069              result = new BoolArrayVariable();
2070              resultIsReadOnly = false;
2071              MergeFrom(original);
2072            }
2073            return result;
2074          }
2075         
2076          public override bool IsInitialized {
2077            get { return result.IsInitialized; }
2078          }
2079         
2080          protected override BoolArrayVariable MessageBeingBuilt {
2081            get { return PrepareBuilder(); }
2082          }
2083         
2084          public override Builder Clear() {
2085            result = DefaultInstance;
2086            resultIsReadOnly = true;
2087            return this;
2088          }
2089         
2090          public override Builder Clone() {
2091            if (resultIsReadOnly) {
2092              return new Builder(result);
2093            } else {
2094              return new Builder().MergeFrom(result);
2095            }
2096          }
2097         
2098          public override pbd::MessageDescriptor DescriptorForType {
2099            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Descriptor; }
2100          }
2101         
2102          public override BoolArrayVariable DefaultInstanceForType {
2103            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.DefaultInstance; }
2104          }
2105         
2106          public override BoolArrayVariable BuildPartial() {
2107            if (resultIsReadOnly) {
2108              return result;
2109            }
2110            resultIsReadOnly = true;
2111            return result.MakeReadOnly();
2112          }
2113         
2114          public override Builder MergeFrom(pb::IMessage other) {
2115            if (other is BoolArrayVariable) {
2116              return MergeFrom((BoolArrayVariable) other);
2117            } else {
2118              base.MergeFrom(other);
2119              return this;
2120            }
2121          }
2122         
2123          public override Builder MergeFrom(BoolArrayVariable other) {
2124            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.DefaultInstance) return this;
2125            PrepareBuilder();
2126            if (other.HasName) {
2127              Name = other.Name;
2128            }
2129            if (other.data_.Count != 0) {
2130              result.data_.Add(other.data_);
2131            }
2132            if (other.HasLength) {
2133              Length = other.Length;
2134            }
2135            this.MergeUnknownFields(other.UnknownFields);
2136            return this;
2137          }
2138         
2139          public override Builder MergeFrom(pb::ICodedInputStream input) {
2140            return MergeFrom(input, pb::ExtensionRegistry.Empty);
2141          }
2142         
2143          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2144            PrepareBuilder();
2145            pb::UnknownFieldSet.Builder unknownFields = null;
2146            uint tag;
2147            string field_name;
2148            while (input.ReadTag(out tag, out field_name)) {
2149              if(tag == 0 && field_name != null) {
2150                int field_ordinal = global::System.Array.BinarySearch(_boolArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
2151                if(field_ordinal >= 0)
2152                  tag = _boolArrayVariableFieldTags[field_ordinal];
2153                else {
2154                  if (unknownFields == null) {
2155                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2156                  }
2157                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2158                  continue;
2159                }
2160              }
2161              switch (tag) {
2162                case 0: {
2163                  throw pb::InvalidProtocolBufferException.InvalidTag();
2164                }
2165                default: {
2166                  if (pb::WireFormat.IsEndGroupTag(tag)) {
2167                    if (unknownFields != null) {
2168                      this.UnknownFields = unknownFields.Build();
2169                    }
2170                    return this;
2171                  }
2172                  if (unknownFields == null) {
2173                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2174                  }
2175                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2176                  break;
2177                }
2178                case 10: {
2179                  result.hasName = input.ReadString(ref result.name_);
2180                  break;
2181                }
2182                case 18:
2183                case 16: {
2184                  input.ReadBoolArray(tag, field_name, result.data_);
2185                  break;
2186                }
2187                case 24: {
2188                  result.hasLength = input.ReadInt32(ref result.length_);
2189                  break;
2190                }
2191              }
2192            }
2193           
2194            if (unknownFields != null) {
2195              this.UnknownFields = unknownFields.Build();
2196            }
2197            return this;
2198          }
2199         
2200         
2201          public bool HasName {
2202            get { return result.hasName; }
2203          }
2204          public string Name {
2205            get { return result.Name; }
2206            set { SetName(value); }
2207          }
2208          public Builder SetName(string value) {
2209            pb::ThrowHelper.ThrowIfNull(value, "value");
2210            PrepareBuilder();
2211            result.hasName = true;
2212            result.name_ = value;
2213            return this;
2214          }
2215          public Builder ClearName() {
2216            PrepareBuilder();
2217            result.hasName = false;
2218            result.name_ = "";
2219            return this;
2220          }
2221         
2222          public pbc::IPopsicleList<bool> DataList {
2223            get { return PrepareBuilder().data_; }
2224          }
2225          public int DataCount {
2226            get { return result.DataCount; }
2227          }
2228          public bool GetData(int index) {
2229            return result.GetData(index);
2230          }
2231          public Builder SetData(int index, bool value) {
2232            PrepareBuilder();
2233            result.data_[index] = value;
2234            return this;
2235          }
2236          public Builder AddData(bool value) {
2237            PrepareBuilder();
2238            result.data_.Add(value);
2239            return this;
2240          }
2241          public Builder AddRangeData(scg::IEnumerable<bool> values) {
2242            PrepareBuilder();
2243            result.data_.Add(values);
2244            return this;
2245          }
2246          public Builder ClearData() {
2247            PrepareBuilder();
2248            result.data_.Clear();
2249            return this;
2250          }
2251         
2252          public bool HasLength {
2253            get { return result.hasLength; }
2254          }
2255          public int Length {
2256            get { return result.Length; }
2257            set { SetLength(value); }
2258          }
2259          public Builder SetLength(int value) {
2260            PrepareBuilder();
2261            result.hasLength = true;
2262            result.length_ = value;
2263            return this;
2264          }
2265          public Builder ClearLength() {
2266            PrepareBuilder();
2267            result.hasLength = false;
2268            result.length_ = 0;
2269            return this;
2270          }
2271        }
2272        static BoolArrayVariable() {
2273          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
2274        }
2275      }
2276     
2277      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2278      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2279      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2280      public sealed partial class StringVariable : pb::GeneratedMessage<StringVariable, StringVariable.Builder> {
2281        private StringVariable() { }
2282        private static readonly StringVariable defaultInstance = new StringVariable().MakeReadOnly();
2283        private static readonly string[] _stringVariableFieldNames = new string[] { "data", "name" };
2284        private static readonly uint[] _stringVariableFieldTags = new uint[] { 18, 10 };
2285        public static StringVariable DefaultInstance {
2286          get { return defaultInstance; }
2287        }
2288       
2289        public override StringVariable DefaultInstanceForType {
2290          get { return DefaultInstance; }
2291        }
2292       
2293        protected override StringVariable ThisMessage {
2294          get { return this; }
2295        }
2296       
2297        public static pbd::MessageDescriptor Descriptor {
2298          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor; }
2299        }
2300       
2301        protected override pb::FieldAccess.FieldAccessorTable<StringVariable, StringVariable.Builder> InternalFieldAccessors {
2302          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__FieldAccessorTable; }
2303        }
2304       
2305        public const int NameFieldNumber = 1;
2306        private bool hasName;
2307        private string name_ = "";
2308        public bool HasName {
2309          get { return hasName; }
2310        }
2311        public string Name {
2312          get { return name_; }
2313        }
2314       
2315        public const int DataFieldNumber = 2;
2316        private bool hasData;
2317        private string data_ = "";
2318        public bool HasData {
2319          get { return hasData; }
2320        }
2321        public string Data {
2322          get { return data_; }
2323        }
2324       
2325        public override bool IsInitialized {
2326          get {
2327            if (!hasName) return false;
2328            return true;
2329          }
2330        }
2331       
2332        public override void WriteTo(pb::ICodedOutputStream output) {
2333          int size = SerializedSize;
2334          string[] field_names = _stringVariableFieldNames;
2335          if (hasName) {
2336            output.WriteString(1, field_names[1], Name);
2337          }
2338          if (hasData) {
2339            output.WriteString(2, field_names[0], Data);
2340          }
2341          UnknownFields.WriteTo(output);
2342        }
2343       
2344        private int memoizedSerializedSize = -1;
2345        public override int SerializedSize {
2346          get {
2347            int size = memoizedSerializedSize;
2348            if (size != -1) return size;
2349           
2350            size = 0;
2351            if (hasName) {
2352              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
2353            }
2354            if (hasData) {
2355              size += pb::CodedOutputStream.ComputeStringSize(2, Data);
2356            }
2357            size += UnknownFields.SerializedSize;
2358            memoizedSerializedSize = size;
2359            return size;
2360          }
2361        }
2362       
2363        public static StringVariable ParseFrom(pb::ByteString data) {
2364          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2365        }
2366        public static StringVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
2367          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2368        }
2369        public static StringVariable ParseFrom(byte[] data) {
2370          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2371        }
2372        public static StringVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
2373          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2374        }
2375        public static StringVariable ParseFrom(global::System.IO.Stream input) {
2376          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2377        }
2378        public static StringVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2379          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2380        }
2381        public static StringVariable ParseDelimitedFrom(global::System.IO.Stream input) {
2382          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
2383        }
2384        public static StringVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2385          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
2386        }
2387        public static StringVariable ParseFrom(pb::ICodedInputStream input) {
2388          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2389        }
2390        public static StringVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2391          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2392        }
2393        private StringVariable MakeReadOnly() {
2394          return this;
2395        }
2396       
2397        public static Builder CreateBuilder() { return new Builder(); }
2398        public override Builder ToBuilder() { return CreateBuilder(this); }
2399        public override Builder CreateBuilderForType() { return new Builder(); }
2400        public static Builder CreateBuilder(StringVariable prototype) {
2401          return new Builder(prototype);
2402        }
2403       
2404        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2405        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2406        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2407        public sealed partial class Builder : pb::GeneratedBuilder<StringVariable, Builder> {
2408          protected override Builder ThisBuilder {
2409            get { return this; }
2410          }
2411          public Builder() {
2412            result = DefaultInstance;
2413            resultIsReadOnly = true;
2414          }
2415          internal Builder(StringVariable cloneFrom) {
2416            result = cloneFrom;
2417            resultIsReadOnly = true;
2418          }
2419         
2420          private bool resultIsReadOnly;
2421          private StringVariable result;
2422         
2423          private StringVariable PrepareBuilder() {
2424            if (resultIsReadOnly) {
2425              StringVariable original = result;
2426              result = new StringVariable();
2427              resultIsReadOnly = false;
2428              MergeFrom(original);
2429            }
2430            return result;
2431          }
2432         
2433          public override bool IsInitialized {
2434            get { return result.IsInitialized; }
2435          }
2436         
2437          protected override StringVariable MessageBeingBuilt {
2438            get { return PrepareBuilder(); }
2439          }
2440         
2441          public override Builder Clear() {
2442            result = DefaultInstance;
2443            resultIsReadOnly = true;
2444            return this;
2445          }
2446         
2447          public override Builder Clone() {
2448            if (resultIsReadOnly) {
2449              return new Builder(result);
2450            } else {
2451              return new Builder().MergeFrom(result);
2452            }
2453          }
2454         
2455          public override pbd::MessageDescriptor DescriptorForType {
2456            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Descriptor; }
2457          }
2458         
2459          public override StringVariable DefaultInstanceForType {
2460            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.DefaultInstance; }
2461          }
2462         
2463          public override StringVariable BuildPartial() {
2464            if (resultIsReadOnly) {
2465              return result;
2466            }
2467            resultIsReadOnly = true;
2468            return result.MakeReadOnly();
2469          }
2470         
2471          public override Builder MergeFrom(pb::IMessage other) {
2472            if (other is StringVariable) {
2473              return MergeFrom((StringVariable) other);
2474            } else {
2475              base.MergeFrom(other);
2476              return this;
2477            }
2478          }
2479         
2480          public override Builder MergeFrom(StringVariable other) {
2481            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.DefaultInstance) return this;
2482            PrepareBuilder();
2483            if (other.HasName) {
2484              Name = other.Name;
2485            }
2486            if (other.HasData) {
2487              Data = other.Data;
2488            }
2489            this.MergeUnknownFields(other.UnknownFields);
2490            return this;
2491          }
2492         
2493          public override Builder MergeFrom(pb::ICodedInputStream input) {
2494            return MergeFrom(input, pb::ExtensionRegistry.Empty);
2495          }
2496         
2497          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2498            PrepareBuilder();
2499            pb::UnknownFieldSet.Builder unknownFields = null;
2500            uint tag;
2501            string field_name;
2502            while (input.ReadTag(out tag, out field_name)) {
2503              if(tag == 0 && field_name != null) {
2504                int field_ordinal = global::System.Array.BinarySearch(_stringVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
2505                if(field_ordinal >= 0)
2506                  tag = _stringVariableFieldTags[field_ordinal];
2507                else {
2508                  if (unknownFields == null) {
2509                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2510                  }
2511                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2512                  continue;
2513                }
2514              }
2515              switch (tag) {
2516                case 0: {
2517                  throw pb::InvalidProtocolBufferException.InvalidTag();
2518                }
2519                default: {
2520                  if (pb::WireFormat.IsEndGroupTag(tag)) {
2521                    if (unknownFields != null) {
2522                      this.UnknownFields = unknownFields.Build();
2523                    }
2524                    return this;
2525                  }
2526                  if (unknownFields == null) {
2527                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2528                  }
2529                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2530                  break;
2531                }
2532                case 10: {
2533                  result.hasName = input.ReadString(ref result.name_);
2534                  break;
2535                }
2536                case 18: {
2537                  result.hasData = input.ReadString(ref result.data_);
2538                  break;
2539                }
2540              }
2541            }
2542           
2543            if (unknownFields != null) {
2544              this.UnknownFields = unknownFields.Build();
2545            }
2546            return this;
2547          }
2548         
2549         
2550          public bool HasName {
2551            get { return result.hasName; }
2552          }
2553          public string Name {
2554            get { return result.Name; }
2555            set { SetName(value); }
2556          }
2557          public Builder SetName(string value) {
2558            pb::ThrowHelper.ThrowIfNull(value, "value");
2559            PrepareBuilder();
2560            result.hasName = true;
2561            result.name_ = value;
2562            return this;
2563          }
2564          public Builder ClearName() {
2565            PrepareBuilder();
2566            result.hasName = false;
2567            result.name_ = "";
2568            return this;
2569          }
2570         
2571          public bool HasData {
2572            get { return result.hasData; }
2573          }
2574          public string Data {
2575            get { return result.Data; }
2576            set { SetData(value); }
2577          }
2578          public Builder SetData(string value) {
2579            pb::ThrowHelper.ThrowIfNull(value, "value");
2580            PrepareBuilder();
2581            result.hasData = true;
2582            result.data_ = value;
2583            return this;
2584          }
2585          public Builder ClearData() {
2586            PrepareBuilder();
2587            result.hasData = false;
2588            result.data_ = "";
2589            return this;
2590          }
2591        }
2592        static StringVariable() {
2593          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
2594        }
2595      }
2596     
2597      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2598      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2599      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2600      public sealed partial class StringArrayVariable : pb::GeneratedMessage<StringArrayVariable, StringArrayVariable.Builder> {
2601        private StringArrayVariable() { }
2602        private static readonly StringArrayVariable defaultInstance = new StringArrayVariable().MakeReadOnly();
2603        private static readonly string[] _stringArrayVariableFieldNames = new string[] { "data", "length", "name" };
2604        private static readonly uint[] _stringArrayVariableFieldTags = new uint[] { 18, 24, 10 };
2605        public static StringArrayVariable DefaultInstance {
2606          get { return defaultInstance; }
2607        }
2608       
2609        public override StringArrayVariable DefaultInstanceForType {
2610          get { return DefaultInstance; }
2611        }
2612       
2613        protected override StringArrayVariable ThisMessage {
2614          get { return this; }
2615        }
2616       
2617        public static pbd::MessageDescriptor Descriptor {
2618          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor; }
2619        }
2620       
2621        protected override pb::FieldAccess.FieldAccessorTable<StringArrayVariable, StringArrayVariable.Builder> InternalFieldAccessors {
2622          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__FieldAccessorTable; }
2623        }
2624       
2625        public const int NameFieldNumber = 1;
2626        private bool hasName;
2627        private string name_ = "";
2628        public bool HasName {
2629          get { return hasName; }
2630        }
2631        public string Name {
2632          get { return name_; }
2633        }
2634       
2635        public const int DataFieldNumber = 2;
2636        private pbc::PopsicleList<string> data_ = new pbc::PopsicleList<string>();
2637        public scg::IList<string> DataList {
2638          get { return pbc::Lists.AsReadOnly(data_); }
2639        }
2640        public int DataCount {
2641          get { return data_.Count; }
2642        }
2643        public string GetData(int index) {
2644          return data_[index];
2645        }
2646       
2647        public const int LengthFieldNumber = 3;
2648        private bool hasLength;
2649        private int length_;
2650        public bool HasLength {
2651          get { return hasLength; }
2652        }
2653        public int Length {
2654          get { return length_; }
2655        }
2656       
2657        public override bool IsInitialized {
2658          get {
2659            if (!hasName) return false;
2660            return true;
2661          }
2662        }
2663       
2664        public override void WriteTo(pb::ICodedOutputStream output) {
2665          int size = SerializedSize;
2666          string[] field_names = _stringArrayVariableFieldNames;
2667          if (hasName) {
2668            output.WriteString(1, field_names[2], Name);
2669          }
2670          if (data_.Count > 0) {
2671            output.WriteStringArray(2, field_names[0], data_);
2672          }
2673          if (hasLength) {
2674            output.WriteInt32(3, field_names[1], Length);
2675          }
2676          UnknownFields.WriteTo(output);
2677        }
2678       
2679        private int memoizedSerializedSize = -1;
2680        public override int SerializedSize {
2681          get {
2682            int size = memoizedSerializedSize;
2683            if (size != -1) return size;
2684           
2685            size = 0;
2686            if (hasName) {
2687              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
2688            }
2689            {
2690              int dataSize = 0;
2691              foreach (string element in DataList) {
2692                dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
2693              }
2694              size += dataSize;
2695              size += 1 * data_.Count;
2696            }
2697            if (hasLength) {
2698              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
2699            }
2700            size += UnknownFields.SerializedSize;
2701            memoizedSerializedSize = size;
2702            return size;
2703          }
2704        }
2705       
2706        public static StringArrayVariable ParseFrom(pb::ByteString data) {
2707          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2708        }
2709        public static StringArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
2710          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2711        }
2712        public static StringArrayVariable ParseFrom(byte[] data) {
2713          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2714        }
2715        public static StringArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
2716          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2717        }
2718        public static StringArrayVariable ParseFrom(global::System.IO.Stream input) {
2719          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2720        }
2721        public static StringArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2722          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2723        }
2724        public static StringArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
2725          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
2726        }
2727        public static StringArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2728          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
2729        }
2730        public static StringArrayVariable ParseFrom(pb::ICodedInputStream input) {
2731          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2732        }
2733        public static StringArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2734          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2735        }
2736        private StringArrayVariable MakeReadOnly() {
2737          data_.MakeReadOnly();
2738          return this;
2739        }
2740       
2741        public static Builder CreateBuilder() { return new Builder(); }
2742        public override Builder ToBuilder() { return CreateBuilder(this); }
2743        public override Builder CreateBuilderForType() { return new Builder(); }
2744        public static Builder CreateBuilder(StringArrayVariable prototype) {
2745          return new Builder(prototype);
2746        }
2747       
2748        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2749        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2750        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2751        public sealed partial class Builder : pb::GeneratedBuilder<StringArrayVariable, Builder> {
2752          protected override Builder ThisBuilder {
2753            get { return this; }
2754          }
2755          public Builder() {
2756            result = DefaultInstance;
2757            resultIsReadOnly = true;
2758          }
2759          internal Builder(StringArrayVariable cloneFrom) {
2760            result = cloneFrom;
2761            resultIsReadOnly = true;
2762          }
2763         
2764          private bool resultIsReadOnly;
2765          private StringArrayVariable result;
2766         
2767          private StringArrayVariable PrepareBuilder() {
2768            if (resultIsReadOnly) {
2769              StringArrayVariable original = result;
2770              result = new StringArrayVariable();
2771              resultIsReadOnly = false;
2772              MergeFrom(original);
2773            }
2774            return result;
2775          }
2776         
2777          public override bool IsInitialized {
2778            get { return result.IsInitialized; }
2779          }
2780         
2781          protected override StringArrayVariable MessageBeingBuilt {
2782            get { return PrepareBuilder(); }
2783          }
2784         
2785          public override Builder Clear() {
2786            result = DefaultInstance;
2787            resultIsReadOnly = true;
2788            return this;
2789          }
2790         
2791          public override Builder Clone() {
2792            if (resultIsReadOnly) {
2793              return new Builder(result);
2794            } else {
2795              return new Builder().MergeFrom(result);
2796            }
2797          }
2798         
2799          public override pbd::MessageDescriptor DescriptorForType {
2800            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Descriptor; }
2801          }
2802         
2803          public override StringArrayVariable DefaultInstanceForType {
2804            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.DefaultInstance; }
2805          }
2806         
2807          public override StringArrayVariable BuildPartial() {
2808            if (resultIsReadOnly) {
2809              return result;
2810            }
2811            resultIsReadOnly = true;
2812            return result.MakeReadOnly();
2813          }
2814         
2815          public override Builder MergeFrom(pb::IMessage other) {
2816            if (other is StringArrayVariable) {
2817              return MergeFrom((StringArrayVariable) other);
2818            } else {
2819              base.MergeFrom(other);
2820              return this;
2821            }
2822          }
2823         
2824          public override Builder MergeFrom(StringArrayVariable other) {
2825            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.DefaultInstance) return this;
2826            PrepareBuilder();
2827            if (other.HasName) {
2828              Name = other.Name;
2829            }
2830            if (other.data_.Count != 0) {
2831              result.data_.Add(other.data_);
2832            }
2833            if (other.HasLength) {
2834              Length = other.Length;
2835            }
2836            this.MergeUnknownFields(other.UnknownFields);
2837            return this;
2838          }
2839         
2840          public override Builder MergeFrom(pb::ICodedInputStream input) {
2841            return MergeFrom(input, pb::ExtensionRegistry.Empty);
2842          }
2843         
2844          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2845            PrepareBuilder();
2846            pb::UnknownFieldSet.Builder unknownFields = null;
2847            uint tag;
2848            string field_name;
2849            while (input.ReadTag(out tag, out field_name)) {
2850              if(tag == 0 && field_name != null) {
2851                int field_ordinal = global::System.Array.BinarySearch(_stringArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
2852                if(field_ordinal >= 0)
2853                  tag = _stringArrayVariableFieldTags[field_ordinal];
2854                else {
2855                  if (unknownFields == null) {
2856                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2857                  }
2858                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2859                  continue;
2860                }
2861              }
2862              switch (tag) {
2863                case 0: {
2864                  throw pb::InvalidProtocolBufferException.InvalidTag();
2865                }
2866                default: {
2867                  if (pb::WireFormat.IsEndGroupTag(tag)) {
2868                    if (unknownFields != null) {
2869                      this.UnknownFields = unknownFields.Build();
2870                    }
2871                    return this;
2872                  }
2873                  if (unknownFields == null) {
2874                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2875                  }
2876                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2877                  break;
2878                }
2879                case 10: {
2880                  result.hasName = input.ReadString(ref result.name_);
2881                  break;
2882                }
2883                case 18: {
2884                  input.ReadStringArray(tag, field_name, result.data_);
2885                  break;
2886                }
2887                case 24: {
2888                  result.hasLength = input.ReadInt32(ref result.length_);
2889                  break;
2890                }
2891              }
2892            }
2893           
2894            if (unknownFields != null) {
2895              this.UnknownFields = unknownFields.Build();
2896            }
2897            return this;
2898          }
2899         
2900         
2901          public bool HasName {
2902            get { return result.hasName; }
2903          }
2904          public string Name {
2905            get { return result.Name; }
2906            set { SetName(value); }
2907          }
2908          public Builder SetName(string value) {
2909            pb::ThrowHelper.ThrowIfNull(value, "value");
2910            PrepareBuilder();
2911            result.hasName = true;
2912            result.name_ = value;
2913            return this;
2914          }
2915          public Builder ClearName() {
2916            PrepareBuilder();
2917            result.hasName = false;
2918            result.name_ = "";
2919            return this;
2920          }
2921         
2922          public pbc::IPopsicleList<string> DataList {
2923            get { return PrepareBuilder().data_; }
2924          }
2925          public int DataCount {
2926            get { return result.DataCount; }
2927          }
2928          public string GetData(int index) {
2929            return result.GetData(index);
2930          }
2931          public Builder SetData(int index, string value) {
2932            pb::ThrowHelper.ThrowIfNull(value, "value");
2933            PrepareBuilder();
2934            result.data_[index] = value;
2935            return this;
2936          }
2937          public Builder AddData(string value) {
2938            pb::ThrowHelper.ThrowIfNull(value, "value");
2939            PrepareBuilder();
2940            result.data_.Add(value);
2941            return this;
2942          }
2943          public Builder AddRangeData(scg::IEnumerable<string> values) {
2944            PrepareBuilder();
2945            result.data_.Add(values);
2946            return this;
2947          }
2948          public Builder ClearData() {
2949            PrepareBuilder();
2950            result.data_.Clear();
2951            return this;
2952          }
2953         
2954          public bool HasLength {
2955            get { return result.hasLength; }
2956          }
2957          public int Length {
2958            get { return result.Length; }
2959            set { SetLength(value); }
2960          }
2961          public Builder SetLength(int value) {
2962            PrepareBuilder();
2963            result.hasLength = true;
2964            result.length_ = value;
2965            return this;
2966          }
2967          public Builder ClearLength() {
2968            PrepareBuilder();
2969            result.hasLength = false;
2970            result.length_ = 0;
2971            return this;
2972          }
2973        }
2974        static StringArrayVariable() {
2975          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
2976        }
2977      }
2978     
2979      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2980      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2981      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2982      public sealed partial class RawVariable : pb::GeneratedMessage<RawVariable, RawVariable.Builder> {
2983        private RawVariable() { }
2984        private static readonly RawVariable defaultInstance = new RawVariable().MakeReadOnly();
2985        private static readonly string[] _rawVariableFieldNames = new string[] { "data", "name" };
2986        private static readonly uint[] _rawVariableFieldTags = new uint[] { 18, 10 };
2987        public static RawVariable DefaultInstance {
2988          get { return defaultInstance; }
2989        }
2990       
2991        public override RawVariable DefaultInstanceForType {
2992          get { return DefaultInstance; }
2993        }
2994       
2995        protected override RawVariable ThisMessage {
2996          get { return this; }
2997        }
2998       
2999        public static pbd::MessageDescriptor Descriptor {
3000          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor; }
3001        }
3002       
3003        protected override pb::FieldAccess.FieldAccessorTable<RawVariable, RawVariable.Builder> InternalFieldAccessors {
3004          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__FieldAccessorTable; }
3005        }
3006       
3007        public const int NameFieldNumber = 1;
3008        private bool hasName;
3009        private string name_ = "";
3010        public bool HasName {
3011          get { return hasName; }
3012        }
3013        public string Name {
3014          get { return name_; }
3015        }
3016       
3017        public const int DataFieldNumber = 2;
3018        private bool hasData;
3019        private pb::ByteString data_ = pb::ByteString.Empty;
3020        public bool HasData {
3021          get { return hasData; }
3022        }
3023        public pb::ByteString Data {
3024          get { return data_; }
3025        }
3026       
3027        public override bool IsInitialized {
3028          get {
3029            if (!hasName) return false;
3030            return true;
3031          }
3032        }
3033       
3034        public override void WriteTo(pb::ICodedOutputStream output) {
3035          int size = SerializedSize;
3036          string[] field_names = _rawVariableFieldNames;
3037          if (hasName) {
3038            output.WriteString(1, field_names[1], Name);
3039          }
3040          if (hasData) {
3041            output.WriteBytes(2, field_names[0], Data);
3042          }
3043          UnknownFields.WriteTo(output);
3044        }
3045       
3046        private int memoizedSerializedSize = -1;
3047        public override int SerializedSize {
3048          get {
3049            int size = memoizedSerializedSize;
3050            if (size != -1) return size;
3051           
3052            size = 0;
3053            if (hasName) {
3054              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
3055            }
3056            if (hasData) {
3057              size += pb::CodedOutputStream.ComputeBytesSize(2, Data);
3058            }
3059            size += UnknownFields.SerializedSize;
3060            memoizedSerializedSize = size;
3061            return size;
3062          }
3063        }
3064       
3065        public static RawVariable ParseFrom(pb::ByteString data) {
3066          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3067        }
3068        public static RawVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
3069          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3070        }
3071        public static RawVariable ParseFrom(byte[] data) {
3072          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3073        }
3074        public static RawVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
3075          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3076        }
3077        public static RawVariable ParseFrom(global::System.IO.Stream input) {
3078          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3079        }
3080        public static RawVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3081          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3082        }
3083        public static RawVariable ParseDelimitedFrom(global::System.IO.Stream input) {
3084          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
3085        }
3086        public static RawVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3087          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
3088        }
3089        public static RawVariable ParseFrom(pb::ICodedInputStream input) {
3090          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3091        }
3092        public static RawVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3093          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3094        }
3095        private RawVariable MakeReadOnly() {
3096          return this;
3097        }
3098       
3099        public static Builder CreateBuilder() { return new Builder(); }
3100        public override Builder ToBuilder() { return CreateBuilder(this); }
3101        public override Builder CreateBuilderForType() { return new Builder(); }
3102        public static Builder CreateBuilder(RawVariable prototype) {
3103          return new Builder(prototype);
3104        }
3105       
3106        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3107        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
3108        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
3109        public sealed partial class Builder : pb::GeneratedBuilder<RawVariable, Builder> {
3110          protected override Builder ThisBuilder {
3111            get { return this; }
3112          }
3113          public Builder() {
3114            result = DefaultInstance;
3115            resultIsReadOnly = true;
3116          }
3117          internal Builder(RawVariable cloneFrom) {
3118            result = cloneFrom;
3119            resultIsReadOnly = true;
3120          }
3121         
3122          private bool resultIsReadOnly;
3123          private RawVariable result;
3124         
3125          private RawVariable PrepareBuilder() {
3126            if (resultIsReadOnly) {
3127              RawVariable original = result;
3128              result = new RawVariable();
3129              resultIsReadOnly = false;
3130              MergeFrom(original);
3131            }
3132            return result;
3133          }
3134         
3135          public override bool IsInitialized {
3136            get { return result.IsInitialized; }
3137          }
3138         
3139          protected override RawVariable MessageBeingBuilt {
3140            get { return PrepareBuilder(); }
3141          }
3142         
3143          public override Builder Clear() {
3144            result = DefaultInstance;
3145            resultIsReadOnly = true;
3146            return this;
3147          }
3148         
3149          public override Builder Clone() {
3150            if (resultIsReadOnly) {
3151              return new Builder(result);
3152            } else {
3153              return new Builder().MergeFrom(result);
3154            }
3155          }
3156         
3157          public override pbd::MessageDescriptor DescriptorForType {
3158            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Descriptor; }
3159          }
3160         
3161          public override RawVariable DefaultInstanceForType {
3162            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.DefaultInstance; }
3163          }
3164         
3165          public override RawVariable BuildPartial() {
3166            if (resultIsReadOnly) {
3167              return result;
3168            }
3169            resultIsReadOnly = true;
3170            return result.MakeReadOnly();
3171          }
3172         
3173          public override Builder MergeFrom(pb::IMessage other) {
3174            if (other is RawVariable) {
3175              return MergeFrom((RawVariable) other);
3176            } else {
3177              base.MergeFrom(other);
3178              return this;
3179            }
3180          }
3181         
3182          public override Builder MergeFrom(RawVariable other) {
3183            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.DefaultInstance) return this;
3184            PrepareBuilder();
3185            if (other.HasName) {
3186              Name = other.Name;
3187            }
3188            if (other.HasData) {
3189              Data = other.Data;
3190            }
3191            this.MergeUnknownFields(other.UnknownFields);
3192            return this;
3193          }
3194         
3195          public override Builder MergeFrom(pb::ICodedInputStream input) {
3196            return MergeFrom(input, pb::ExtensionRegistry.Empty);
3197          }
3198         
3199          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3200            PrepareBuilder();
3201            pb::UnknownFieldSet.Builder unknownFields = null;
3202            uint tag;
3203            string field_name;
3204            while (input.ReadTag(out tag, out field_name)) {
3205              if(tag == 0 && field_name != null) {
3206                int field_ordinal = global::System.Array.BinarySearch(_rawVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
3207                if(field_ordinal >= 0)
3208                  tag = _rawVariableFieldTags[field_ordinal];
3209                else {
3210                  if (unknownFields == null) {
3211                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3212                  }
3213                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3214                  continue;
3215                }
3216              }
3217              switch (tag) {
3218                case 0: {
3219                  throw pb::InvalidProtocolBufferException.InvalidTag();
3220                }
3221                default: {
3222                  if (pb::WireFormat.IsEndGroupTag(tag)) {
3223                    if (unknownFields != null) {
3224                      this.UnknownFields = unknownFields.Build();
3225                    }
3226                    return this;
3227                  }
3228                  if (unknownFields == null) {
3229                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3230                  }
3231                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3232                  break;
3233                }
3234                case 10: {
3235                  result.hasName = input.ReadString(ref result.name_);
3236                  break;
3237                }
3238                case 18: {
3239                  result.hasData = input.ReadBytes(ref result.data_);
3240                  break;
3241                }
3242              }
3243            }
3244           
3245            if (unknownFields != null) {
3246              this.UnknownFields = unknownFields.Build();
3247            }
3248            return this;
3249          }
3250         
3251         
3252          public bool HasName {
3253            get { return result.hasName; }
3254          }
3255          public string Name {
3256            get { return result.Name; }
3257            set { SetName(value); }
3258          }
3259          public Builder SetName(string value) {
3260            pb::ThrowHelper.ThrowIfNull(value, "value");
3261            PrepareBuilder();
3262            result.hasName = true;
3263            result.name_ = value;
3264            return this;
3265          }
3266          public Builder ClearName() {
3267            PrepareBuilder();
3268            result.hasName = false;
3269            result.name_ = "";
3270            return this;
3271          }
3272         
3273          public bool HasData {
3274            get { return result.hasData; }
3275          }
3276          public pb::ByteString Data {
3277            get { return result.Data; }
3278            set { SetData(value); }
3279          }
3280          public Builder SetData(pb::ByteString value) {
3281            pb::ThrowHelper.ThrowIfNull(value, "value");
3282            PrepareBuilder();
3283            result.hasData = true;
3284            result.data_ = value;
3285            return this;
3286          }
3287          public Builder ClearData() {
3288            PrepareBuilder();
3289            result.hasData = false;
3290            result.data_ = pb::ByteString.Empty;
3291            return this;
3292          }
3293        }
3294        static RawVariable() {
3295          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
3296        }
3297      }
3298     
3299    }
3300    #endregion
3301   
3302    public const int SolutionIdFieldNumber = 1;
3303    private bool hasSolutionId;
3304    private int solutionId_;
3305    public bool HasSolutionId {
3306      get { return hasSolutionId; }
3307    }
3308    public int SolutionId {
3309      get { return solutionId_; }
3310    }
3311   
3312    public const int IntegerVarsFieldNumber = 2;
3313    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> integerVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable>();
3314    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> IntegerVarsList {
3315      get { return integerVars_; }
3316    }
3317    public int IntegerVarsCount {
3318      get { return integerVars_.Count; }
3319    }
3320    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable GetIntegerVars(int index) {
3321      return integerVars_[index];
3322    }
3323   
3324    public const int IntegerArrayVarsFieldNumber = 3;
3325    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> integerArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable>();
3326    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> IntegerArrayVarsList {
3327      get { return integerArrayVars_; }
3328    }
3329    public int IntegerArrayVarsCount {
3330      get { return integerArrayVars_.Count; }
3331    }
3332    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable GetIntegerArrayVars(int index) {
3333      return integerArrayVars_[index];
3334    }
3335   
3336    public const int DoubleVarsFieldNumber = 4;
3337    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> doubleVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable>();
3338    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> DoubleVarsList {
3339      get { return doubleVars_; }
3340    }
3341    public int DoubleVarsCount {
3342      get { return doubleVars_.Count; }
3343    }
3344    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable GetDoubleVars(int index) {
3345      return doubleVars_[index];
3346    }
3347   
3348    public const int DoubleArrayVarsFieldNumber = 5;
3349    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> doubleArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable>();
3350    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> DoubleArrayVarsList {
3351      get { return doubleArrayVars_; }
3352    }
3353    public int DoubleArrayVarsCount {
3354      get { return doubleArrayVars_.Count; }
3355    }
3356    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable GetDoubleArrayVars(int index) {
3357      return doubleArrayVars_[index];
3358    }
3359   
3360    public const int BoolVarsFieldNumber = 6;
3361    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> boolVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable>();
3362    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> BoolVarsList {
3363      get { return boolVars_; }
3364    }
3365    public int BoolVarsCount {
3366      get { return boolVars_.Count; }
3367    }
3368    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable GetBoolVars(int index) {
3369      return boolVars_[index];
3370    }
3371   
3372    public const int BoolArrayVarsFieldNumber = 7;
3373    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> boolArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable>();
3374    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> BoolArrayVarsList {
3375      get { return boolArrayVars_; }
3376    }
3377    public int BoolArrayVarsCount {
3378      get { return boolArrayVars_.Count; }
3379    }
3380    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable GetBoolArrayVars(int index) {
3381      return boolArrayVars_[index];
3382    }
3383   
3384    public const int StringVarsFieldNumber = 8;
3385    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> stringVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable>();
3386    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> StringVarsList {
3387      get { return stringVars_; }
3388    }
3389    public int StringVarsCount {
3390      get { return stringVars_.Count; }
3391    }
3392    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable GetStringVars(int index) {
3393      return stringVars_[index];
3394    }
3395   
3396    public const int StringArrayVarsFieldNumber = 9;
3397    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> stringArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable>();
3398    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> StringArrayVarsList {
3399      get { return stringArrayVars_; }
3400    }
3401    public int StringArrayVarsCount {
3402      get { return stringArrayVars_.Count; }
3403    }
3404    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable GetStringArrayVars(int index) {
3405      return stringArrayVars_[index];
3406    }
3407   
3408    public const int RawVarsFieldNumber = 10;
3409    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> rawVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable>();
3410    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> RawVarsList {
3411      get { return rawVars_; }
3412    }
3413    public int RawVarsCount {
3414      get { return rawVars_.Count; }
3415    }
3416    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable GetRawVars(int index) {
3417      return rawVars_[index];
3418    }
3419   
3420    public override bool IsInitialized {
3421      get {
3422        if (!hasSolutionId) return false;
3423        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable element in IntegerVarsList) {
3424          if (!element.IsInitialized) return false;
3425        }
3426        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable element in IntegerArrayVarsList) {
3427          if (!element.IsInitialized) return false;
3428        }
3429        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable element in DoubleVarsList) {
3430          if (!element.IsInitialized) return false;
3431        }
3432        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable element in DoubleArrayVarsList) {
3433          if (!element.IsInitialized) return false;
3434        }
3435        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable element in BoolVarsList) {
3436          if (!element.IsInitialized) return false;
3437        }
3438        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable element in BoolArrayVarsList) {
3439          if (!element.IsInitialized) return false;
3440        }
3441        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable element in StringVarsList) {
3442          if (!element.IsInitialized) return false;
3443        }
3444        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable element in StringArrayVarsList) {
3445          if (!element.IsInitialized) return false;
3446        }
3447        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable element in RawVarsList) {
3448          if (!element.IsInitialized) return false;
3449        }
3450        return true;
3451      }
3452    }
3453   
3454    public override void WriteTo(pb::ICodedOutputStream output) {
3455      int size = SerializedSize;
3456      string[] field_names = _solutionMessageFieldNames;
3457      if (hasSolutionId) {
3458        output.WriteInt32(1, field_names[7], SolutionId);
3459      }
3460      if (integerVars_.Count > 0) {
3461        output.WriteMessageArray(2, field_names[5], integerVars_);
3462      }
3463      if (integerArrayVars_.Count > 0) {
3464        output.WriteMessageArray(3, field_names[4], integerArrayVars_);
3465      }
3466      if (doubleVars_.Count > 0) {
3467        output.WriteMessageArray(4, field_names[3], doubleVars_);
3468      }
3469      if (doubleArrayVars_.Count > 0) {
3470        output.WriteMessageArray(5, field_names[2], doubleArrayVars_);
3471      }
3472      if (boolVars_.Count > 0) {
3473        output.WriteMessageArray(6, field_names[1], boolVars_);
3474      }
3475      if (boolArrayVars_.Count > 0) {
3476        output.WriteMessageArray(7, field_names[0], boolArrayVars_);
3477      }
3478      if (stringVars_.Count > 0) {
3479        output.WriteMessageArray(8, field_names[9], stringVars_);
3480      }
3481      if (stringArrayVars_.Count > 0) {
3482        output.WriteMessageArray(9, field_names[8], stringArrayVars_);
3483      }
3484      if (rawVars_.Count > 0) {
3485        output.WriteMessageArray(10, field_names[6], rawVars_);
3486      }
3487      UnknownFields.WriteTo(output);
3488    }
3489   
3490    private int memoizedSerializedSize = -1;
3491    public override int SerializedSize {
3492      get {
3493        int size = memoizedSerializedSize;
3494        if (size != -1) return size;
3495       
3496        size = 0;
3497        if (hasSolutionId) {
3498          size += pb::CodedOutputStream.ComputeInt32Size(1, SolutionId);
3499        }
3500        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable element in IntegerVarsList) {
3501          size += pb::CodedOutputStream.ComputeMessageSize(2, element);
3502        }
3503        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable element in IntegerArrayVarsList) {
3504          size += pb::CodedOutputStream.ComputeMessageSize(3, element);
3505        }
3506        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable element in DoubleVarsList) {
3507          size += pb::CodedOutputStream.ComputeMessageSize(4, element);
3508        }
3509        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable element in DoubleArrayVarsList) {
3510          size += pb::CodedOutputStream.ComputeMessageSize(5, element);
3511        }
3512        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable element in BoolVarsList) {
3513          size += pb::CodedOutputStream.ComputeMessageSize(6, element);
3514        }
3515        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable element in BoolArrayVarsList) {
3516          size += pb::CodedOutputStream.ComputeMessageSize(7, element);
3517        }
3518        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable element in StringVarsList) {
3519          size += pb::CodedOutputStream.ComputeMessageSize(8, element);
3520        }
3521        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable element in StringArrayVarsList) {
3522          size += pb::CodedOutputStream.ComputeMessageSize(9, element);
3523        }
3524        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable element in RawVarsList) {
3525          size += pb::CodedOutputStream.ComputeMessageSize(10, element);
3526        }
3527        size += UnknownFields.SerializedSize;
3528        memoizedSerializedSize = size;
3529        return size;
3530      }
3531    }
3532   
3533    public static SolutionMessage ParseFrom(pb::ByteString data) {
3534      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3535    }
3536    public static SolutionMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
3537      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3538    }
3539    public static SolutionMessage ParseFrom(byte[] data) {
3540      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3541    }
3542    public static SolutionMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
3543      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3544    }
3545    public static SolutionMessage ParseFrom(global::System.IO.Stream input) {
3546      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3547    }
3548    public static SolutionMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3549      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3550    }
3551    public static SolutionMessage ParseDelimitedFrom(global::System.IO.Stream input) {
3552      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
3553    }
3554    public static SolutionMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3555      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
3556    }
3557    public static SolutionMessage ParseFrom(pb::ICodedInputStream input) {
3558      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3559    }
3560    public static SolutionMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3561      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3562    }
3563    private SolutionMessage MakeReadOnly() {
3564      integerVars_.MakeReadOnly();
3565      integerArrayVars_.MakeReadOnly();
3566      doubleVars_.MakeReadOnly();
3567      doubleArrayVars_.MakeReadOnly();
3568      boolVars_.MakeReadOnly();
3569      boolArrayVars_.MakeReadOnly();
3570      stringVars_.MakeReadOnly();
3571      stringArrayVars_.MakeReadOnly();
3572      rawVars_.MakeReadOnly();
3573      return this;
3574    }
3575   
3576    public static Builder CreateBuilder() { return new Builder(); }
3577    public override Builder ToBuilder() { return CreateBuilder(this); }
3578    public override Builder CreateBuilderForType() { return new Builder(); }
3579    public static Builder CreateBuilder(SolutionMessage prototype) {
3580      return new Builder(prototype);
3581    }
3582   
3583    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3584    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
3585    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
3586    public sealed partial class Builder : pb::GeneratedBuilder<SolutionMessage, Builder> {
3587      protected override Builder ThisBuilder {
3588        get { return this; }
3589      }
3590      public Builder() {
3591        result = DefaultInstance;
3592        resultIsReadOnly = true;
3593      }
3594      internal Builder(SolutionMessage cloneFrom) {
3595        result = cloneFrom;
3596        resultIsReadOnly = true;
3597      }
3598     
3599      private bool resultIsReadOnly;
3600      private SolutionMessage result;
3601     
3602      private SolutionMessage PrepareBuilder() {
3603        if (resultIsReadOnly) {
3604          SolutionMessage original = result;
3605          result = new SolutionMessage();
3606          resultIsReadOnly = false;
3607          MergeFrom(original);
3608        }
3609        return result;
3610      }
3611     
3612      public override bool IsInitialized {
3613        get { return result.IsInitialized; }
3614      }
3615     
3616      protected override SolutionMessage MessageBeingBuilt {
3617        get { return PrepareBuilder(); }
3618      }
3619     
3620      public override Builder Clear() {
3621        result = DefaultInstance;
3622        resultIsReadOnly = true;
3623        return this;
3624      }
3625     
3626      public override Builder Clone() {
3627        if (resultIsReadOnly) {
3628          return new Builder(result);
3629        } else {
3630          return new Builder().MergeFrom(result);
3631        }
3632      }
3633     
3634      public override pbd::MessageDescriptor DescriptorForType {
3635        get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Descriptor; }
3636      }
3637     
3638      public override SolutionMessage DefaultInstanceForType {
3639        get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.DefaultInstance; }
3640      }
3641     
3642      public override SolutionMessage BuildPartial() {
3643        if (resultIsReadOnly) {
3644          return result;
3645        }
3646        resultIsReadOnly = true;
3647        return result.MakeReadOnly();
3648      }
3649     
3650      public override Builder MergeFrom(pb::IMessage other) {
3651        if (other is SolutionMessage) {
3652          return MergeFrom((SolutionMessage) other);
3653        } else {
3654          base.MergeFrom(other);
3655          return this;
3656        }
3657      }
3658     
3659      public override Builder MergeFrom(SolutionMessage other) {
3660        if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.DefaultInstance) return this;
3661        PrepareBuilder();
3662        if (other.HasSolutionId) {
3663          SolutionId = other.SolutionId;
3664        }
3665        if (other.integerVars_.Count != 0) {
3666          result.integerVars_.Add(other.integerVars_);
3667        }
3668        if (other.integerArrayVars_.Count != 0) {
3669          result.integerArrayVars_.Add(other.integerArrayVars_);
3670        }
3671        if (other.doubleVars_.Count != 0) {
3672          result.doubleVars_.Add(other.doubleVars_);
3673        }
3674        if (other.doubleArrayVars_.Count != 0) {
3675          result.doubleArrayVars_.Add(other.doubleArrayVars_);
3676        }
3677        if (other.boolVars_.Count != 0) {
3678          result.boolVars_.Add(other.boolVars_);
3679        }
3680        if (other.boolArrayVars_.Count != 0) {
3681          result.boolArrayVars_.Add(other.boolArrayVars_);
3682        }
3683        if (other.stringVars_.Count != 0) {
3684          result.stringVars_.Add(other.stringVars_);
3685        }
3686        if (other.stringArrayVars_.Count != 0) {
3687          result.stringArrayVars_.Add(other.stringArrayVars_);
3688        }
3689        if (other.rawVars_.Count != 0) {
3690          result.rawVars_.Add(other.rawVars_);
3691        }
3692        this.MergeUnknownFields(other.UnknownFields);
3693        return this;
3694      }
3695     
3696      public override Builder MergeFrom(pb::ICodedInputStream input) {
3697        return MergeFrom(input, pb::ExtensionRegistry.Empty);
3698      }
3699     
3700      public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3701        PrepareBuilder();
3702        pb::UnknownFieldSet.Builder unknownFields = null;
3703        uint tag;
3704        string field_name;
3705        while (input.ReadTag(out tag, out field_name)) {
3706          if(tag == 0 && field_name != null) {
3707            int field_ordinal = global::System.Array.BinarySearch(_solutionMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
3708            if(field_ordinal >= 0)
3709              tag = _solutionMessageFieldTags[field_ordinal];
3710            else {
3711              if (unknownFields == null) {
3712                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3713              }
3714              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3715              continue;
3716            }
3717          }
3718          switch (tag) {
3719            case 0: {
3720              throw pb::InvalidProtocolBufferException.InvalidTag();
3721            }
3722            default: {
3723              if (pb::WireFormat.IsEndGroupTag(tag)) {
3724                if (unknownFields != null) {
3725                  this.UnknownFields = unknownFields.Build();
3726                }
3727                return this;
3728              }
3729              if (unknownFields == null) {
3730                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3731              }
3732              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3733              break;
3734            }
3735            case 8: {
3736              result.hasSolutionId = input.ReadInt32(ref result.solutionId_);
3737              break;
3738            }
3739            case 18: {
3740              input.ReadMessageArray(tag, field_name, result.integerVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.DefaultInstance, extensionRegistry);
3741              break;
3742            }
3743            case 26: {
3744              input.ReadMessageArray(tag, field_name, result.integerArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.DefaultInstance, extensionRegistry);
3745              break;
3746            }
3747            case 34: {
3748              input.ReadMessageArray(tag, field_name, result.doubleVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.DefaultInstance, extensionRegistry);
3749              break;
3750            }
3751            case 42: {
3752              input.ReadMessageArray(tag, field_name, result.doubleArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.DefaultInstance, extensionRegistry);
3753              break;
3754            }
3755            case 50: {
3756              input.ReadMessageArray(tag, field_name, result.boolVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.DefaultInstance, extensionRegistry);
3757              break;
3758            }
3759            case 58: {
3760              input.ReadMessageArray(tag, field_name, result.boolArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.DefaultInstance, extensionRegistry);
3761              break;
3762            }
3763            case 66: {
3764              input.ReadMessageArray(tag, field_name, result.stringVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.DefaultInstance, extensionRegistry);
3765              break;
3766            }
3767            case 74: {
3768              input.ReadMessageArray(tag, field_name, result.stringArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.DefaultInstance, extensionRegistry);
3769              break;
3770            }
3771            case 82: {
3772              input.ReadMessageArray(tag, field_name, result.rawVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.DefaultInstance, extensionRegistry);
3773              break;
3774            }
3775          }
3776        }
3777       
3778        if (unknownFields != null) {
3779          this.UnknownFields = unknownFields.Build();
3780        }
3781        return this;
3782      }
3783     
3784     
3785      public bool HasSolutionId {
3786        get { return result.hasSolutionId; }
3787      }
3788      public int SolutionId {
3789        get { return result.SolutionId; }
3790        set { SetSolutionId(value); }
3791      }
3792      public Builder SetSolutionId(int value) {
3793        PrepareBuilder();
3794        result.hasSolutionId = true;
3795        result.solutionId_ = value;
3796        return this;
3797      }
3798      public Builder ClearSolutionId() {
3799        PrepareBuilder();
3800        result.hasSolutionId = false;
3801        result.solutionId_ = 0;
3802        return this;
3803      }
3804     
3805      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> IntegerVarsList {
3806        get { return PrepareBuilder().integerVars_; }
3807      }
3808      public int IntegerVarsCount {
3809        get { return result.IntegerVarsCount; }
3810      }
3811      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable GetIntegerVars(int index) {
3812        return result.GetIntegerVars(index);
3813      }
3814      public Builder SetIntegerVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable value) {
3815        pb::ThrowHelper.ThrowIfNull(value, "value");
3816        PrepareBuilder();
3817        result.integerVars_[index] = value;
3818        return this;
3819      }
3820      public Builder SetIntegerVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder builderForValue) {
3821        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3822        PrepareBuilder();
3823        result.integerVars_[index] = builderForValue.Build();
3824        return this;
3825      }
3826      public Builder AddIntegerVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable value) {
3827        pb::ThrowHelper.ThrowIfNull(value, "value");
3828        PrepareBuilder();
3829        result.integerVars_.Add(value);
3830        return this;
3831      }
3832      public Builder AddIntegerVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder builderForValue) {
3833        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3834        PrepareBuilder();
3835        result.integerVars_.Add(builderForValue.Build());
3836        return this;
3837      }
3838      public Builder AddRangeIntegerVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> values) {
3839        PrepareBuilder();
3840        result.integerVars_.Add(values);
3841        return this;
3842      }
3843      public Builder ClearIntegerVars() {
3844        PrepareBuilder();
3845        result.integerVars_.Clear();
3846        return this;
3847      }
3848     
3849      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> IntegerArrayVarsList {
3850        get { return PrepareBuilder().integerArrayVars_; }
3851      }
3852      public int IntegerArrayVarsCount {
3853        get { return result.IntegerArrayVarsCount; }
3854      }
3855      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable GetIntegerArrayVars(int index) {
3856        return result.GetIntegerArrayVars(index);
3857      }
3858      public Builder SetIntegerArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable value) {
3859        pb::ThrowHelper.ThrowIfNull(value, "value");
3860        PrepareBuilder();
3861        result.integerArrayVars_[index] = value;
3862        return this;
3863      }
3864      public Builder SetIntegerArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder builderForValue) {
3865        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3866        PrepareBuilder();
3867        result.integerArrayVars_[index] = builderForValue.Build();
3868        return this;
3869      }
3870      public Builder AddIntegerArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable value) {
3871        pb::ThrowHelper.ThrowIfNull(value, "value");
3872        PrepareBuilder();
3873        result.integerArrayVars_.Add(value);
3874        return this;
3875      }
3876      public Builder AddIntegerArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder builderForValue) {
3877        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3878        PrepareBuilder();
3879        result.integerArrayVars_.Add(builderForValue.Build());
3880        return this;
3881      }
3882      public Builder AddRangeIntegerArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> values) {
3883        PrepareBuilder();
3884        result.integerArrayVars_.Add(values);
3885        return this;
3886      }
3887      public Builder ClearIntegerArrayVars() {
3888        PrepareBuilder();
3889        result.integerArrayVars_.Clear();
3890        return this;
3891      }
3892     
3893      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> DoubleVarsList {
3894        get { return PrepareBuilder().doubleVars_; }
3895      }
3896      public int DoubleVarsCount {
3897        get { return result.DoubleVarsCount; }
3898      }
3899      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable GetDoubleVars(int index) {
3900        return result.GetDoubleVars(index);
3901      }
3902      public Builder SetDoubleVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable value) {
3903        pb::ThrowHelper.ThrowIfNull(value, "value");
3904        PrepareBuilder();
3905        result.doubleVars_[index] = value;
3906        return this;
3907      }
3908      public Builder SetDoubleVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder builderForValue) {
3909        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3910        PrepareBuilder();
3911        result.doubleVars_[index] = builderForValue.Build();
3912        return this;
3913      }
3914      public Builder AddDoubleVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable value) {
3915        pb::ThrowHelper.ThrowIfNull(value, "value");
3916        PrepareBuilder();
3917        result.doubleVars_.Add(value);
3918        return this;
3919      }
3920      public Builder AddDoubleVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder builderForValue) {
3921        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3922        PrepareBuilder();
3923        result.doubleVars_.Add(builderForValue.Build());
3924        return this;
3925      }
3926      public Builder AddRangeDoubleVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> values) {
3927        PrepareBuilder();
3928        result.doubleVars_.Add(values);
3929        return this;
3930      }
3931      public Builder ClearDoubleVars() {
3932        PrepareBuilder();
3933        result.doubleVars_.Clear();
3934        return this;
3935      }
3936     
3937      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> DoubleArrayVarsList {
3938        get { return PrepareBuilder().doubleArrayVars_; }
3939      }
3940      public int DoubleArrayVarsCount {
3941        get { return result.DoubleArrayVarsCount; }
3942      }
3943      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable GetDoubleArrayVars(int index) {
3944        return result.GetDoubleArrayVars(index);
3945      }
3946      public Builder SetDoubleArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable value) {
3947        pb::ThrowHelper.ThrowIfNull(value, "value");
3948        PrepareBuilder();
3949        result.doubleArrayVars_[index] = value;
3950        return this;
3951      }
3952      public Builder SetDoubleArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder builderForValue) {
3953        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3954        PrepareBuilder();
3955        result.doubleArrayVars_[index] = builderForValue.Build();
3956        return this;
3957      }
3958      public Builder AddDoubleArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable value) {
3959        pb::ThrowHelper.ThrowIfNull(value, "value");
3960        PrepareBuilder();
3961        result.doubleArrayVars_.Add(value);
3962        return this;
3963      }
3964      public Builder AddDoubleArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder builderForValue) {
3965        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3966        PrepareBuilder();
3967        result.doubleArrayVars_.Add(builderForValue.Build());
3968        return this;
3969      }
3970      public Builder AddRangeDoubleArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> values) {
3971        PrepareBuilder();
3972        result.doubleArrayVars_.Add(values);
3973        return this;
3974      }
3975      public Builder ClearDoubleArrayVars() {
3976        PrepareBuilder();
3977        result.doubleArrayVars_.Clear();
3978        return this;
3979      }
3980     
3981      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> BoolVarsList {
3982        get { return PrepareBuilder().boolVars_; }
3983      }
3984      public int BoolVarsCount {
3985        get { return result.BoolVarsCount; }
3986      }
3987      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable GetBoolVars(int index) {
3988        return result.GetBoolVars(index);
3989      }
3990      public Builder SetBoolVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable value) {
3991        pb::ThrowHelper.ThrowIfNull(value, "value");
3992        PrepareBuilder();
3993        result.boolVars_[index] = value;
3994        return this;
3995      }
3996      public Builder SetBoolVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder builderForValue) {
3997        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3998        PrepareBuilder();
3999        result.boolVars_[index] = builderForValue.Build();
4000        return this;
4001      }
4002      public Builder AddBoolVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable value) {
4003        pb::ThrowHelper.ThrowIfNull(value, "value");
4004        PrepareBuilder();
4005        result.boolVars_.Add(value);
4006        return this;
4007      }
4008      public Builder AddBoolVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder builderForValue) {
4009        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4010        PrepareBuilder();
4011        result.boolVars_.Add(builderForValue.Build());
4012        return this;
4013      }
4014      public Builder AddRangeBoolVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> values) {
4015        PrepareBuilder();
4016        result.boolVars_.Add(values);
4017        return this;
4018      }
4019      public Builder ClearBoolVars() {
4020        PrepareBuilder();
4021        result.boolVars_.Clear();
4022        return this;
4023      }
4024     
4025      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> BoolArrayVarsList {
4026        get { return PrepareBuilder().boolArrayVars_; }
4027      }
4028      public int BoolArrayVarsCount {
4029        get { return result.BoolArrayVarsCount; }
4030      }
4031      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable GetBoolArrayVars(int index) {
4032        return result.GetBoolArrayVars(index);
4033      }
4034      public Builder SetBoolArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable value) {
4035        pb::ThrowHelper.ThrowIfNull(value, "value");
4036        PrepareBuilder();
4037        result.boolArrayVars_[index] = value;
4038        return this;
4039      }
4040      public Builder SetBoolArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder builderForValue) {
4041        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4042        PrepareBuilder();
4043        result.boolArrayVars_[index] = builderForValue.Build();
4044        return this;
4045      }
4046      public Builder AddBoolArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable value) {
4047        pb::ThrowHelper.ThrowIfNull(value, "value");
4048        PrepareBuilder();
4049        result.boolArrayVars_.Add(value);
4050        return this;
4051      }
4052      public Builder AddBoolArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder builderForValue) {
4053        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4054        PrepareBuilder();
4055        result.boolArrayVars_.Add(builderForValue.Build());
4056        return this;
4057      }
4058      public Builder AddRangeBoolArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> values) {
4059        PrepareBuilder();
4060        result.boolArrayVars_.Add(values);
4061        return this;
4062      }
4063      public Builder ClearBoolArrayVars() {
4064        PrepareBuilder();
4065        result.boolArrayVars_.Clear();
4066        return this;
4067      }
4068     
4069      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> StringVarsList {
4070        get { return PrepareBuilder().stringVars_; }
4071      }
4072      public int StringVarsCount {
4073        get { return result.StringVarsCount; }
4074      }
4075      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable GetStringVars(int index) {
4076        return result.GetStringVars(index);
4077      }
4078      public Builder SetStringVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable value) {
4079        pb::ThrowHelper.ThrowIfNull(value, "value");
4080        PrepareBuilder();
4081        result.stringVars_[index] = value;
4082        return this;
4083      }
4084      public Builder SetStringVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder builderForValue) {
4085        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4086        PrepareBuilder();
4087        result.stringVars_[index] = builderForValue.Build();
4088        return this;
4089      }
4090      public Builder AddStringVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable value) {
4091        pb::ThrowHelper.ThrowIfNull(value, "value");
4092        PrepareBuilder();
4093        result.stringVars_.Add(value);
4094        return this;
4095      }
4096      public Builder AddStringVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder builderForValue) {
4097        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4098        PrepareBuilder();
4099        result.stringVars_.Add(builderForValue.Build());
4100        return this;
4101      }
4102      public Builder AddRangeStringVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> values) {
4103        PrepareBuilder();
4104        result.stringVars_.Add(values);
4105        return this;
4106      }
4107      public Builder ClearStringVars() {
4108        PrepareBuilder();
4109        result.stringVars_.Clear();
4110        return this;
4111      }
4112     
4113      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> StringArrayVarsList {
4114        get { return PrepareBuilder().stringArrayVars_; }
4115      }
4116      public int StringArrayVarsCount {
4117        get { return result.StringArrayVarsCount; }
4118      }
4119      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable GetStringArrayVars(int index) {
4120        return result.GetStringArrayVars(index);
4121      }
4122      public Builder SetStringArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable value) {
4123        pb::ThrowHelper.ThrowIfNull(value, "value");
4124        PrepareBuilder();
4125        result.stringArrayVars_[index] = value;
4126        return this;
4127      }
4128      public Builder SetStringArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder builderForValue) {
4129        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4130        PrepareBuilder();
4131        result.stringArrayVars_[index] = builderForValue.Build();
4132        return this;
4133      }
4134      public Builder AddStringArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable value) {
4135        pb::ThrowHelper.ThrowIfNull(value, "value");
4136        PrepareBuilder();
4137        result.stringArrayVars_.Add(value);
4138        return this;
4139      }
4140      public Builder AddStringArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder builderForValue) {
4141        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4142        PrepareBuilder();
4143        result.stringArrayVars_.Add(builderForValue.Build());
4144        return this;
4145      }
4146      public Builder AddRangeStringArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> values) {
4147        PrepareBuilder();
4148        result.stringArrayVars_.Add(values);
4149        return this;
4150      }
4151      public Builder ClearStringArrayVars() {
4152        PrepareBuilder();
4153        result.stringArrayVars_.Clear();
4154        return this;
4155      }
4156     
4157      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> RawVarsList {
4158        get { return PrepareBuilder().rawVars_; }
4159      }
4160      public int RawVarsCount {
4161        get { return result.RawVarsCount; }
4162      }
4163      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable GetRawVars(int index) {
4164        return result.GetRawVars(index);
4165      }
4166      public Builder SetRawVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable value) {
4167        pb::ThrowHelper.ThrowIfNull(value, "value");
4168        PrepareBuilder();
4169        result.rawVars_[index] = value;
4170        return this;
4171      }
4172      public Builder SetRawVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder builderForValue) {
4173        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4174        PrepareBuilder();
4175        result.rawVars_[index] = builderForValue.Build();
4176        return this;
4177      }
4178      public Builder AddRawVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable value) {
4179        pb::ThrowHelper.ThrowIfNull(value, "value");
4180        PrepareBuilder();
4181        result.rawVars_.Add(value);
4182        return this;
4183      }
4184      public Builder AddRawVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder builderForValue) {
4185        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4186        PrepareBuilder();
4187        result.rawVars_.Add(builderForValue.Build());
4188        return this;
4189      }
4190      public Builder AddRangeRawVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> values) {
4191        PrepareBuilder();
4192        result.rawVars_.Add(values);
4193        return this;
4194      }
4195      public Builder ClearRawVars() {
4196        PrepareBuilder();
4197        result.rawVars_.Clear();
4198        return this;
4199      }
4200    }
4201    static SolutionMessage() {
4202      object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
4203    }
4204  }
4205 
4206  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4207  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4208  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4209  public sealed partial class QualityMessage : pb::ExtendableMessage<QualityMessage, QualityMessage.Builder> {
4210    private QualityMessage() { }
4211    private static readonly QualityMessage defaultInstance = new QualityMessage().MakeReadOnly();
4212    private static readonly string[] _qualityMessageFieldNames = new string[] { "quality", "solutionId" };
4213    private static readonly uint[] _qualityMessageFieldTags = new uint[] { 17, 8 };
4214    public static QualityMessage DefaultInstance {
4215      get { return defaultInstance; }
4216    }
4217   
4218    public override QualityMessage DefaultInstanceForType {
4219      get { return DefaultInstance; }
4220    }
4221   
4222    protected override QualityMessage ThisMessage {
4223      get { return this; }
4224    }
4225   
4226    public static pbd::MessageDescriptor Descriptor {
4227      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor; }
4228    }
4229   
4230    protected override pb::FieldAccess.FieldAccessorTable<QualityMessage, QualityMessage.Builder> InternalFieldAccessors {
4231      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__FieldAccessorTable; }
4232    }
4233   
4234    public const int SolutionIdFieldNumber = 1;
4235    private bool hasSolutionId;
4236    private int solutionId_;
4237    public bool HasSolutionId {
4238      get { return hasSolutionId; }
4239    }
4240    public int SolutionId {
4241      get { return solutionId_; }
4242    }
4243   
4244    public const int QualityFieldNumber = 2;
4245    private bool hasQuality;
4246    private double quality_;
4247    public bool HasQuality {
4248      get { return hasQuality; }
4249    }
4250    public double Quality {
4251      get { return quality_; }
4252    }
4253   
4254    public override bool IsInitialized {
4255      get {
4256        if (!hasSolutionId) return false;
4257        if (!hasQuality) return false;
4258        if (!ExtensionsAreInitialized) return false;
4259        return true;
4260      }
4261    }
4262   
4263    public override void WriteTo(pb::ICodedOutputStream output) {
4264      int size = SerializedSize;
4265      string[] field_names = _qualityMessageFieldNames;
4266      pb::ExtendableMessage<QualityMessage, QualityMessage.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
4267      if (hasSolutionId) {
4268        output.WriteInt32(1, field_names[1], SolutionId);
4269      }
4270      if (hasQuality) {
4271        output.WriteDouble(2, field_names[0], Quality);
4272      }
4273      extensionWriter.WriteUntil(536870912, output);
4274      UnknownFields.WriteTo(output);
4275    }
4276   
4277    private int memoizedSerializedSize = -1;
4278    public override int SerializedSize {
4279      get {
4280        int size = memoizedSerializedSize;
4281        if (size != -1) return size;
4282       
4283        size = 0;
4284        if (hasSolutionId) {
4285          size += pb::CodedOutputStream.ComputeInt32Size(1, SolutionId);
4286        }
4287        if (hasQuality) {
4288          size += pb::CodedOutputStream.ComputeDoubleSize(2, Quality);
4289        }
4290        size += ExtensionsSerializedSize;
4291        size += UnknownFields.SerializedSize;
4292        memoizedSerializedSize = size;
4293        return size;
4294      }
4295    }
4296   
4297    public static QualityMessage ParseFrom(pb::ByteString data) {
4298      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4299    }
4300    public static QualityMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
4301      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4302    }
4303    public static QualityMessage ParseFrom(byte[] data) {
4304      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4305    }
4306    public static QualityMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
4307      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4308    }
4309    public static QualityMessage ParseFrom(global::System.IO.Stream input) {
4310      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4311    }
4312    public static QualityMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4313      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4314    }
4315    public static QualityMessage ParseDelimitedFrom(global::System.IO.Stream input) {
4316      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
4317    }
4318    public static QualityMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4319      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
4320    }
4321    public static QualityMessage ParseFrom(pb::ICodedInputStream input) {
4322      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4323    }
4324    public static QualityMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
4325      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4326    }
4327    private QualityMessage MakeReadOnly() {
4328      return this;
4329    }
4330   
4331    public static Builder CreateBuilder() { return new Builder(); }
4332    public override Builder ToBuilder() { return CreateBuilder(this); }
4333    public override Builder CreateBuilderForType() { return new Builder(); }
4334    public static Builder CreateBuilder(QualityMessage prototype) {
4335      return new Builder(prototype);
4336    }
4337   
4338    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4339    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4340    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4341    public sealed partial class Builder : pb::ExtendableBuilder<QualityMessage, Builder> {
4342      protected override Builder ThisBuilder {
4343        get { return this; }
4344      }
4345      public Builder() {
4346        result = DefaultInstance;
4347        resultIsReadOnly = true;
4348      }
4349      internal Builder(QualityMessage cloneFrom) {
4350        result = cloneFrom;
4351        resultIsReadOnly = true;
4352      }
4353     
4354      private bool resultIsReadOnly;
4355      private QualityMessage result;
4356     
4357      private QualityMessage PrepareBuilder() {
4358        if (resultIsReadOnly) {
4359          QualityMessage original = result;
4360          result = new QualityMessage();
4361          resultIsReadOnly = false;
4362          MergeFrom(original);
4363        }
4364        return result;
4365      }
4366     
4367      public override bool IsInitialized {
4368        get { return result.IsInitialized; }
4369      }
4370     
4371      protected override QualityMessage MessageBeingBuilt {
4372        get { return PrepareBuilder(); }
4373      }
4374     
4375      public override Builder Clear() {
4376        result = DefaultInstance;
4377        resultIsReadOnly = true;
4378        return this;
4379      }
4380     
4381      public override Builder Clone() {
4382        if (resultIsReadOnly) {
4383          return new Builder(result);
4384        } else {
4385          return new Builder().MergeFrom(result);
4386        }
4387      }
4388     
4389      public override pbd::MessageDescriptor DescriptorForType {
4390        get { return global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Descriptor; }
4391      }
4392     
4393      public override QualityMessage DefaultInstanceForType {
4394        get { return global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.DefaultInstance; }
4395      }
4396     
4397      public override QualityMessage BuildPartial() {
4398        if (resultIsReadOnly) {
4399          return result;
4400        }
4401        resultIsReadOnly = true;
4402        return result.MakeReadOnly();
4403      }
4404     
4405      public override Builder MergeFrom(pb::IMessage other) {
4406        if (other is QualityMessage) {
4407          return MergeFrom((QualityMessage) other);
4408        } else {
4409          base.MergeFrom(other);
4410          return this;
4411        }
4412      }
4413     
4414      public override Builder MergeFrom(QualityMessage other) {
4415        if (other == global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.DefaultInstance) return this;
4416        PrepareBuilder();
4417        if (other.HasSolutionId) {
4418          SolutionId = other.SolutionId;
4419        }
4420        if (other.HasQuality) {
4421          Quality = other.Quality;
4422        }
4423          this.MergeExtensionFields(other);
4424        this.MergeUnknownFields(other.UnknownFields);
4425        return this;
4426      }
4427     
4428      public override Builder MergeFrom(pb::ICodedInputStream input) {
4429        return MergeFrom(input, pb::ExtensionRegistry.Empty);
4430      }
4431     
4432      public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
4433        PrepareBuilder();
4434        pb::UnknownFieldSet.Builder unknownFields = null;
4435        uint tag;
4436        string field_name;
4437        while (input.ReadTag(out tag, out field_name)) {
4438          if(tag == 0 && field_name != null) {
4439            int field_ordinal = global::System.Array.BinarySearch(_qualityMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
4440            if(field_ordinal >= 0)
4441              tag = _qualityMessageFieldTags[field_ordinal];
4442            else {
4443              if (unknownFields == null) {
4444                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
4445              }
4446              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
4447              continue;
4448            }
4449          }
4450          switch (tag) {
4451            case 0: {
4452              throw pb::InvalidProtocolBufferException.InvalidTag();
4453            }
4454            default: {
4455              if (pb::WireFormat.IsEndGroupTag(tag)) {
4456                if (unknownFields != null) {
4457                  this.UnknownFields = unknownFields.Build();
4458                }
4459                return this;
4460              }
4461              if (unknownFields == null) {
4462                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
4463              }
4464              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
4465              break;
4466            }
4467            case 8: {
4468              result.hasSolutionId = input.ReadInt32(ref result.solutionId_);
4469              break;
4470            }
4471            case 17: {
4472              result.hasQuality = input.ReadDouble(ref result.quality_);
4473              break;
4474            }
4475          }
4476        }
4477       
4478        if (unknownFields != null) {
4479          this.UnknownFields = unknownFields.Build();
4480        }
4481        return this;
4482      }
4483     
4484     
4485      public bool HasSolutionId {
4486        get { return result.hasSolutionId; }
4487      }
4488      public int SolutionId {
4489        get { return result.SolutionId; }
4490        set { SetSolutionId(value); }
4491      }
4492      public Builder SetSolutionId(int value) {
4493        PrepareBuilder();
4494        result.hasSolutionId = true;
4495        result.solutionId_ = value;
4496        return this;
4497      }
4498      public Builder ClearSolutionId() {
4499        PrepareBuilder();
4500        result.hasSolutionId = false;
4501        result.solutionId_ = 0;
4502        return this;
4503      }
4504     
4505      public bool HasQuality {
4506        get { return result.hasQuality; }
4507      }
4508      public double Quality {
4509        get { return result.Quality; }
4510        set { SetQuality(value); }
4511      }
4512      public Builder SetQuality(double value) {
4513        PrepareBuilder();
4514        result.hasQuality = true;
4515        result.quality_ = value;
4516        return this;
4517      }
4518      public Builder ClearQuality() {
4519        PrepareBuilder();
4520        result.hasQuality = false;
4521        result.quality_ = 0D;
4522        return this;
4523      }
4524    }
4525    static QualityMessage() {
4526      object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
4527    }
4528  }
4529 
4530  #endregion
4531 
4532  #region Services
4533  /*
4534  * Service generation is now disabled by default, use the following option to enable:
4535  * option (google.protobuf.csharp_file_options).service_generator_type = GENERIC;
4536  */
4537  #endregion
4538 
4539}
4540
4541#endregion Designer generated code
Note: See TracBrowser for help on using the repository browser.