Free cookie consent management tool by TermsFeed Policy Generator

source: misc/tools/ExternalEvaluation/MyExtension/Plugin/Protos/ExternalEvaluationMessages.cs @ 17690

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

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

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