Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj	(revision 15661)
@@ -0,0 +1,110 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{648F0BF0-6301-448C-816F-DEB1E65EC73F}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.Instances.PermutationProblems</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.Instances.PermutationProblems-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HeuristicLab.Common-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.IO.Compression" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="LOP\LOPDataDescriptor.cs" />
+    <Compile Include="LOP\LOPXLOLIBInstanceProvider.cs" />
+    <Compile Include="LOP\LOPSPECInstanceProvider.cs" />
+    <Compile Include="LOP\LOPSGBInstanceProvider.cs" />
+    <Compile Include="LOP\LOPRANDBInstanceProvider.cs" />
+    <Compile Include="LOP\LOPRANDA2InstanceProvider.cs" />
+    <Compile Include="LOP\LOPRANDA1InstanceProvider.cs" />
+    <Compile Include="LOP\LOPMBInstanceProvider.cs" />
+    <Compile Include="LOP\LOPIOInstanceProvider.cs" />
+    <Compile Include="LOP\LOPParser.cs" />
+    <Compile Include="PFSP\FSSPTAILIBDataDescriptor.cs" />
+    <Compile Include="PFSP\FSSPTAILIBInstanceProvider.cs" />
+    <Compile Include="PFSP\FSSPTAILIBParser.cs" />
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="LOP\Data\IO.zip" />
+    <EmbeddedResource Include="LOP\Data\MB.zip" />
+    <EmbeddedResource Include="LOP\Data\RANDA1.zip" />
+    <EmbeddedResource Include="LOP\Data\RANDA2.zip" />
+    <EmbeddedResource Include="LOP\Data\RANDB.zip" />
+    <EmbeddedResource Include="LOP\Data\SGB.zip" />
+    <EmbeddedResource Include="LOP\Data\SPEC.zip" />
+    <EmbeddedResource Include="LOP\Data\XLOLIB.zip" />
+    <None Include="HeuristicLab.snk" />
+    <EmbeddedResource Include="PFSP\Data\FSSPTAI.zip" />
+    <None Include="Plugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540e29e-4793-49e7-8ee2-fea7f61c3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPDataDescriptor.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPDataDescriptor.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPDataDescriptor.cs	(revision 15661)
@@ -0,0 +1,39 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  internal class LOPDataDescriptor : IDataDescriptor {
+    public string Name { get; internal set; }
+    public string Description { get; internal set; }
+
+    internal string InstanceIdentifier { get; set; }
+    internal string SolutionIdentifier { get; set; }
+
+    internal LOPDataDescriptor(string name, string description, string instanceIdentifier, string solutionIdentifier) {
+      this.Name = name;
+      this.Description = description;
+      this.InstanceIdentifier = instanceIdentifier;
+      this.SolutionIdentifier = solutionIdentifier;
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPIOInstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPIOInstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPIOInstanceProvider.cs	(revision 15661)
@@ -0,0 +1,116 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPIOInstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "IO"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems IO test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/IO.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("IO.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("IO.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPMBInstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPMBInstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPMBInstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPMBInstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "MB"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems MB test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/MB.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("MB.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("MB.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPParser.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPParser.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPParser.cs	(revision 15661)
@@ -0,0 +1,111 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPParser {
+    public string Name { get; set; }
+    public string Description { get; set; }
+    public int Dimension { get; set; }
+    public double[,] Matrix { get; set; }
+    public int[] BestKnownPermutation { get; set; }
+    public double? BestKnownQuality { get; set; }
+
+    public LOPParser() {
+      Reset();
+    }
+
+    public void Reset() {
+      Name = Description = String.Empty;
+      Dimension = 0;
+      BestKnownQuality = 0;
+      Matrix = null;
+      BestKnownPermutation = null;
+    }
+
+    public void Parse(string file) {
+      using (Stream stream = new FileStream(file, FileMode.Open, FileAccess.Read)) {
+        Parse(stream);
+      }
+    }
+
+    public void Export(string file) {
+      using (Stream stream = new FileStream(file, FileMode.Create, FileAccess.Write)) {
+        Export(stream);
+      }
+    }
+
+    public void Parse(Stream stream) {
+      using (var reader = new StreamReader(stream, Encoding.UTF8, true, 4092, true)) {
+        Name = reader.ReadLine().Trim();
+        Description = reader.ReadLine().Trim();
+        BestKnownQuality = double.Parse(reader.ReadLine().Trim());
+        var delim = new char[] { ' ', '\t' };
+
+        Dimension = int.Parse(reader.ReadLine().Trim());
+        Matrix = new double[Dimension, Dimension];
+
+        for (int k = 0; k < Dimension; k++) {
+          if (reader.EndOfStream) throw new InvalidDataException("Unexpected End of Stream.");
+          var valLine = reader.ReadLine();
+          while (String.IsNullOrWhiteSpace(valLine)) valLine = reader.ReadLine();
+          var vals = valLine.Split(delim, StringSplitOptions.RemoveEmptyEntries);
+
+
+          for (int i = 0; i < Dimension; i++) {
+            Matrix[k, i] = double.Parse(vals[i], CultureInfo.InvariantCulture.NumberFormat);
+          }
+        }
+
+        while (!reader.EndOfStream) {
+          var vals = reader.ReadLine().Split(delim, StringSplitOptions.RemoveEmptyEntries);
+          if (vals.Count() == Dimension) { BestKnownPermutation = vals.Select(val => Int32.Parse(val)).ToArray(); }
+        }
+      }
+    }
+
+    public void Export(Stream stream) {
+      using (var writer = new StreamWriter(stream, Encoding.UTF8, 4092, true)) {
+        writer.WriteLine(Name);
+        writer.WriteLine(Description);
+        writer.WriteLine(BestKnownQuality);
+        writer.WriteLine(Dimension);
+
+        for (int k = 0; k < Dimension; k++) {
+          for (int i = 0; i < Dimension; i++) {
+            writer.Write(Matrix[k, i] + '\t');
+          }
+          writer.WriteLine();
+        }
+
+        if (BestKnownPermutation != null) {
+          writer.WriteLine(BestKnownPermutation);
+        }
+        writer.Flush();
+      }
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDA1InstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDA1InstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDA1InstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPRANDA1InstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "RANDA1"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems RANDA1 test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/RANDA1.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("RANDA1.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("RANDA1.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDA2InstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDA2InstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDA2InstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPRANDA2InstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "RANDA2"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems RANDA2 test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/RANDA2.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("RANDA2.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("RANDA2.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDBInstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDBInstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPRANDBInstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPRANDBInstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "RANDB"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems RANDB test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/RANDB.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("RANDB.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("RANDB.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPSGBInstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPSGBInstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPSGBInstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPSGBInstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "SGB"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems SGB test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/SGB.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("SGB.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("SGB.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPSPECInstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPSPECInstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPSPECInstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPSPECInstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "SPEC"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems SPEC test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/SPEC.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("SPEC.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("SPEC.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPXLOLIBInstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPXLOLIBInstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/LOP/LOPXLOLIBInstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances.Types;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.LinearOrdering {
+  public class LOPXLOLIBInstanceProvider : ProblemInstanceProvider<LOPData> {
+
+    public override string Name
+    {
+      get { return "XLOLIB"; }
+    }
+
+    public override string Description
+    {
+      get { return "Linear Ordering Problems XLOLIB test instances"; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://www.optsicom.es/lolib/lop/XLOLIB.zip"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("XLOLIB.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new LOPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override LOPData LoadData(IDataDescriptor id) {
+      var descriptor = (LOPDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("XLOLIB.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new LOPParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override LOPData ImportData(string path) {
+      var parser = new LOPParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private LOPData Load(LOPParser parser) {
+      var instance = new LOPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Dimension = parser.Dimension,
+        Matrix = parser.Matrix,
+        BestKnownPermutation = parser.BestKnownPermutation,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBDataDescriptor.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBDataDescriptor.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBDataDescriptor.cs	(revision 15661)
@@ -0,0 +1,39 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.PFSP {
+  internal class FSSPTAILIBDataDescriptor : IDataDescriptor {
+    public string Name { get; internal set; }
+    public string Description { get; internal set; }
+
+    internal string InstanceIdentifier { get; set; }
+    internal string SolutionIdentifier { get; set; }
+
+    internal FSSPTAILIBDataDescriptor(string name, string description, string instanceIdentifier, string solutionIdentifier) {
+      this.Name = name;
+      this.Description = description;
+      this.InstanceIdentifier = instanceIdentifier;
+      this.SolutionIdentifier = solutionIdentifier;
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBInstanceProvider.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBInstanceProvider.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBInstanceProvider.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.PFSP {
+  public class FSSPTAILIBInstanceProvider : ProblemInstanceProvider<FSSPData> {
+
+    public override string Name
+    {
+      get { return "FSSPTAI"; }
+    }
+
+    public override string Description
+    {
+      get { return "Permutation Flowshop Scheduling Problems (PFSP) as defined by Taillard."; }
+    }
+
+    public override Uri WebLink
+    {
+      get { return new Uri("http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html"); }
+    }
+
+    public override string ReferencePublication
+    {
+      get { return String.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var instanceArchiveName = GetResourceName("FSSPTAI.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
+          yield return new FSSPTAILIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
+        }
+      }
+    }
+
+    public override FSSPData LoadData(IDataDescriptor id) {
+      var descriptor = (FSSPTAILIBDataDescriptor)id;
+      var instanceArchiveName = GetResourceName("FSSPTAI.zip");
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+
+        using (var stream = entry.Open()) {
+          var parser = new FSSPTAILIBParser();
+          parser.Parse(stream);
+          return Load(parser);
+        }
+      }
+    }
+
+    public override bool CanImportData
+    {
+      get { return true; }
+    }
+    public override FSSPData ImportData(string path) {
+      var parser = new FSSPTAILIBParser();
+      parser.Parse(path);
+      return Load(parser);
+    }
+
+    private FSSPData Load(FSSPTAILIBParser parser) {
+      var instance = new FSSPData {
+        Name = parser.Name,
+        Description = parser.Description,
+        Jobs = parser.Jobs,
+        Machines = parser.Machines,
+        ProcessingTimes = parser.ProcessingTimes,
+        BestKnownSchedule = parser.BestKnownSchedule,
+        BestKnownQuality = parser.BestKnownQuality
+      };
+      return instance;
+    }
+
+    public override bool CanExportData
+    {
+      get { return false; }
+    }
+
+    private string GetDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+        .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBParser.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBParser.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/PFSP/FSSPTAILIBParser.cs	(revision 15661)
@@ -0,0 +1,115 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Problems.Instances.PermutationProblems.PFSP {
+  public class FSSPTAILIBParser {
+    public string Name { get; set; }
+    public string Description { get; set; }
+    public int Jobs { get; set; }
+    public int Machines { get; set; }
+    public double[,] ProcessingTimes { get; set; }
+
+    public int[] BestKnownSchedule { get; set; }
+    public int BestKnownQuality { get; set; }
+
+    public FSSPTAILIBParser() {
+      Reset();
+    }
+
+    public void Reset() {
+      Name = Description = String.Empty;
+      Jobs = Machines = BestKnownQuality = 0;
+      ProcessingTimes = null;
+      BestKnownSchedule = null;
+    }
+
+    public void Parse(string file) {
+      using (Stream stream = new FileStream(file, FileMode.Open, FileAccess.Read)) {
+        Parse(stream);
+      }
+    }
+
+    public void Export(string file) {
+      using (Stream stream = new FileStream(file, FileMode.Create, FileAccess.Write)) {
+        Export(stream);
+      }
+    }
+
+    public void Parse(Stream stream) {
+      using (var reader = new StreamReader(stream, Encoding.UTF8, true, 4092, true)) {
+        Name = reader.ReadLine().Trim();
+        Description = reader.ReadLine().Trim();
+        var delim = new char[] { ' ', '\t' };
+
+        var info = reader.ReadLine().Split(delim, StringSplitOptions.RemoveEmptyEntries);
+        Jobs = int.Parse(info[0]);
+        Machines = int.Parse(info[1]);
+        var bestKnownQuality = reader.ReadLine().Trim();
+        BestKnownQuality = int.Parse(bestKnownQuality);
+        ProcessingTimes = new double[Machines, Jobs];
+
+        for (int k = 0; k < Machines; k++) {
+          if (reader.EndOfStream) throw new InvalidDataException("Unexpected End of Stream.");
+          var valLine = reader.ReadLine();
+          while (String.IsNullOrWhiteSpace(valLine)) valLine = reader.ReadLine();
+          var vals = valLine.Split(delim, StringSplitOptions.RemoveEmptyEntries);
+
+
+          for (int i = 0; i < Jobs; i++) {
+            ProcessingTimes[k, i] = double.Parse(vals[i], CultureInfo.InvariantCulture.NumberFormat);
+          }
+        }
+
+        while (!reader.EndOfStream) {
+          var vals = reader.ReadLine().Split(delim, StringSplitOptions.RemoveEmptyEntries);
+          if (vals.Count() == Jobs) { BestKnownSchedule = vals.Select(val => Int32.Parse(val)).ToArray(); }
+        }
+      }
+    }
+
+    public void Export(Stream stream) {
+      using (var writer = new StreamWriter(stream, Encoding.UTF8, 4092, true)) {
+        writer.WriteLine(Name);
+        writer.WriteLine(Description);
+        writer.WriteLine(Jobs + '\t' + Machines);
+        writer.WriteLine(BestKnownQuality);
+
+        for (int k = 0; k < Machines; k++) {
+          for (int i = 0; i < Jobs; i++) {
+            writer.Write(ProcessingTimes[k, i] + "\t");
+          }
+          writer.WriteLine();
+        }
+
+        if (BestKnownSchedule != null) {
+          writer.WriteLine(BestKnownSchedule);
+        }
+        writer.Flush();
+      }
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Plugin.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Plugin.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Plugin.cs	(revision 15661)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.Instances.LinearOrdering {
+  [Plugin("HeuristicLab.Problems.Instances.PermutationProblems", "3.3.15.0")]
+  [PluginFile("HeuristicLab.Problems.Instances.PermutationProblems-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  public class HeuristicLabProblemsInstancesPermutationProblemsPlugin : PluginBase {
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Plugin.cs.frame
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Plugin.cs.frame	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Plugin.cs.frame	(revision 15661)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.Instances.LinearOrdering {
+  [Plugin("HeuristicLab.Problems.Instances.PermutationProblems", "3.3.15.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.Instances.PermutationProblems-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  public class HeuristicLabProblemsInstancesPermutationProblemsPlugin : PluginBase {
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Properties/AssemblyInfo.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Properties/AssemblyInfo.cs	(revision 15661)
@@ -0,0 +1,57 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.Instances.PermutationProblems-3.3")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab.Problems.Instances.PermutationProblems-3.3")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9412aa5f-d663-4af4-b58b-d90fabb343bf")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.14.0")]
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Properties/AssemblyInfo.cs.frame	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/Properties/AssemblyInfo.cs.frame	(revision 15661)
@@ -0,0 +1,57 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.Instances.PermutationProblems-3.3")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab.Problems.Instances.PermutationProblems-3.3")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9412aa5f-d663-4af4-b58b-d90fabb343bf")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.14.$WCREV$")]
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Debug/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Debug/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Debug/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache	(revision 15661)
@@ -0,0 +1,1 @@
+dfa2eb4d23b9b85e8da4c8835682fed13efe84f8
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Debug/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.FileListAbsolute.txt
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Debug/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.FileListAbsolute.txt	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Debug/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.FileListAbsolute.txt	(revision 15661)
@@ -0,0 +1,19 @@
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csprojResolveAssemblyReference.cache
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csprojResolveAssemblyReference.cache
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\dev\HeuristicLab\trunk\sources\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\dev\HeuristicLab\trunk\sources\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csprojResolveAssemblyReference.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Debug\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache	(revision 15661)
@@ -0,0 +1,1 @@
+dfa2eb4d23b9b85e8da4c8835682fed13efe84f8
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.FileListAbsolute.txt
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.FileListAbsolute.txt	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.FileListAbsolute.txt	(revision 15661)
@@ -0,0 +1,19 @@
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csprojResolveAssemblyReference.cache
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\vanmodeus\Desktop\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csprojResolveAssemblyReference.cache
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\Users\P41847\Downloads\HeuristicLab_24082017\HeuristicLab\src\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csprojResolveAssemblyReference.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj.CoreCompileInputs.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
+C:\dev\HeuristicLab\trunk\sources\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.dll
+C:\dev\HeuristicLab\trunk\sources\bin\HeuristicLab.Problems.Instances.LinearOrdering-3.3.pdb
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.CoreCompileInputs.cache
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.CoreCompileInputs.cache	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.CoreCompileInputs.cache	(revision 15661)
@@ -0,0 +1,1 @@
+567792bfea252b02f71da75b99458755116d2410
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.FileListAbsolute.txt
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.FileListAbsolute.txt	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances.PermutationProblems/3.3/obj/Release/HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.FileListAbsolute.txt	(revision 15661)
@@ -0,0 +1,10 @@
+C:\dev\HeuristicLab\trunk\sources\bin\HeuristicLab.Problems.Instances.PermutationProblems-3.3.dll
+C:\dev\HeuristicLab\trunk\sources\bin\HeuristicLab.Problems.Instances.PermutationProblems-3.3.pdb
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.csprojResolveAssemblyReference.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.CoreCompileInputs.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.dll
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.LinearOrdering\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.pdb
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.PermutationProblems\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.csprojResolveAssemblyReference.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.PermutationProblems\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj.CoreCompileInputs.cache
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.PermutationProblems\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.dll
+C:\dev\HeuristicLab\branches\2864_PermutationProblems\HeuristicLab.Problems.Instances.PermutationProblems\3.3\obj\Release\HeuristicLab.Problems.Instances.PermutationProblems-3.3.pdb
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj	(revision 15660)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj	(revision 15661)
@@ -28,5 +28,5 @@
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\bin\</OutputPath>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Plugin.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Plugin.cs	(revision 15660)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Plugin.cs	(revision 15661)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Problems.Instances {
-  [Plugin("HeuristicLab.Problems.Instances", "3.3.14.15639")]
+  [Plugin("HeuristicLab.Problems.Instances", "3.3.15.15640")]
   [PluginFile("HeuristicLab.Problems.Instances-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Common", "3.3")]
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Plugin.cs.frame
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Plugin.cs.frame	(revision 15660)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Plugin.cs.frame	(revision 15661)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Problems.Instances {
-  [Plugin("HeuristicLab.Problems.Instances", "3.3.14.$WCREV$")]
+  [Plugin("HeuristicLab.Problems.Instances", "3.3.15.$WCREV$")]
   [PluginFile("HeuristicLab.Problems.Instances-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Common", "3.3")]
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Properties/AssemblyInfo.cs	(revision 15660)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.Instances/3.3/Properties/AssemblyInfo.cs	(revision 15661)
@@ -55,3 +55,3 @@
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.14.15639")]
+[assembly: AssemblyFileVersion("3.3.14.15640")]
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/HeuristicLab.Problems.PermutationProblems.Views-3.3.csproj
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/HeuristicLab.Problems.PermutationProblems.Views-3.3.csproj	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/HeuristicLab.Problems.PermutationProblems.Views-3.3.csproj	(revision 15661)
@@ -0,0 +1,204 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{F53AECD6-061C-4A62-B2DB-51E36EECBB79}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.PermutationProblems.Views</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.PermutationProblems.Views-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>$(SolutionDir)\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <CodeAnalysisLogFile>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.PFSP.Views-3.3.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>$(SolutionDir)\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <CodeAnalysisLogFile>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.PFSP.Views-3.3.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
+    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>$(SolutionDir)\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <CodeAnalysisLogFile>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.PFSP.Views-3.3.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
+    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>$(SolutionDir)\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <CodeAnalysisLogFile>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.PFSP.Views-3.3.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
+    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HeuristicLab.Collections-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Common-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Core-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Core.Views-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core.Views-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.PermutationEncoding-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Encodings.ScheduleEncoding-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Encodings.ScheduleEncoding.Views-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.MainForm-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Operators-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization.Views-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Views-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Problems.Instances-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Instances-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="JobShopSchedulingProblemView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="JobShopSchedulingProblemView.Designer.cs">
+      <DependentUpon>JobShopSchedulingProblemView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Plugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.PermutationProblems\3.3\HeuristicLab.Problems.PermutationProblems-3.3.csproj">
+      <Project>{51650b00-4ca6-41ff-8cb6-165fcacc3b51}</Project>
+      <Name>HeuristicLab.Problems.PermutationProblems-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+</PreBuildEvent>
+    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+export ProjectDir=$(ProjectDir)
+export SolutionDir=$(SolutionDir)
+
+$SolutionDir/PreBuildEvent.sh
+</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/JobShopSchedulingProblemView.Designer.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/JobShopSchedulingProblemView.Designer.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/JobShopSchedulingProblemView.Designer.cs	(revision 15661)
@@ -0,0 +1,156 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Encodings.ScheduleEncoding.Views;
+namespace HeuristicLab.Problems.PermutationProblems.Views
+{
+    partial class JobShopSchedulingProblemView
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.problemTabControl = new System.Windows.Forms.TabControl();
+            this.problemTabPage = new System.Windows.Forms.TabPage();
+            this.visualizationTabPage = new System.Windows.Forms.TabPage();
+            this.ganttChart = new HeuristicLab.Encodings.ScheduleEncoding.Views.GanttChart();
+            ((System.ComponentModel.ISupportInitialize)(this.problemInstanceSplitContainer)).BeginInit();
+            this.problemInstanceSplitContainer.Panel1.SuspendLayout();
+            this.problemInstanceSplitContainer.Panel2.SuspendLayout();
+            this.problemInstanceSplitContainer.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+            this.problemTabControl.SuspendLayout();
+            this.problemTabPage.SuspendLayout();
+            this.visualizationTabPage.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // problemInstanceSplitContainer.Panel2
+            // 
+            this.problemInstanceSplitContainer.Panel2.Controls.Add(this.problemTabControl);
+            // 
+            // parameterCollectionView
+            // 
+            this.parameterCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
+            this.parameterCollectionView.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.parameterCollectionView.Location = new System.Drawing.Point(3, 3);
+            this.parameterCollectionView.Size = new System.Drawing.Size(491, 271);
+            // 
+            // nameTextBox
+            // 
+            this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+            this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+            this.nameTextBox.Size = new System.Drawing.Size(439, 20);
+            // 
+            // infoLabel
+            // 
+            this.infoLabel.Location = new System.Drawing.Point(492, 3);
+            // 
+            // problemTabControl
+            // 
+            this.problemTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+            this.problemTabControl.Controls.Add(this.problemTabPage);
+            this.problemTabControl.Controls.Add(this.visualizationTabPage);
+            this.problemTabControl.Location = new System.Drawing.Point(3, 27);
+            this.problemTabControl.Name = "problemTabControl";
+            this.problemTabControl.SelectedIndex = 0;
+            this.problemTabControl.Size = new System.Drawing.Size(505, 303);
+            this.problemTabControl.TabIndex = 5;
+            // 
+            // problemTabPage
+            // 
+            this.problemTabPage.Controls.Add(this.parameterCollectionView);
+            this.problemTabPage.Location = new System.Drawing.Point(4, 22);
+            this.problemTabPage.Name = "problemTabPage";
+            this.problemTabPage.Padding = new System.Windows.Forms.Padding(3);
+            this.problemTabPage.Size = new System.Drawing.Size(497, 277);
+            this.problemTabPage.TabIndex = 0;
+            this.problemTabPage.Text = "Problem";
+            this.problemTabPage.UseVisualStyleBackColor = true;
+            // 
+            // visualizationTabPage
+            // 
+            this.visualizationTabPage.Controls.Add(this.ganttChart);
+            this.visualizationTabPage.Location = new System.Drawing.Point(4, 22);
+            this.visualizationTabPage.Name = "visualizationTabPage";
+            this.visualizationTabPage.Padding = new System.Windows.Forms.Padding(3);
+            this.visualizationTabPage.Size = new System.Drawing.Size(497, 277);
+            this.visualizationTabPage.TabIndex = 1;
+            this.visualizationTabPage.Text = "Visualization";
+            this.visualizationTabPage.UseVisualStyleBackColor = true;
+            // 
+            // ganttChart
+            // 
+            this.ganttChart.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.ganttChart.Location = new System.Drawing.Point(3, 3);
+            this.ganttChart.Name = "ganttChart";
+            this.ganttChart.Size = new System.Drawing.Size(491, 271);
+            this.ganttChart.TabIndex = 0;
+            // 
+            // JobShopSchedulingProblemView
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Name = "JobShopSchedulingProblemView";
+            this.problemInstanceSplitContainer.Panel1.ResumeLayout(false);
+            this.problemInstanceSplitContainer.Panel2.ResumeLayout(false);
+            this.problemInstanceSplitContainer.Panel2.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.problemInstanceSplitContainer)).EndInit();
+            this.problemInstanceSplitContainer.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+            this.problemTabControl.ResumeLayout(false);
+            this.problemTabPage.ResumeLayout(false);
+            this.visualizationTabPage.ResumeLayout(false);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TabControl problemTabControl;
+        private System.Windows.Forms.TabPage problemTabPage;
+        private System.Windows.Forms.TabPage visualizationTabPage;
+        private GanttChart ganttChart;
+    }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/JobShopSchedulingProblemView.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/JobShopSchedulingProblemView.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/JobShopSchedulingProblemView.cs	(revision 15661)
@@ -0,0 +1,103 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization.Views;
+using HeuristicLab.Data;
+using System.Linq;
+
+namespace HeuristicLab.Problems.PermutationProblems.Views {
+  [View("Permutation Flowshop Scheduling Problem View")]
+  [Content(typeof(PermutationFlowshopSchedulingProblem), true)]
+  public partial class JobShopSchedulingProblemView : ProblemView {
+
+    public new PermutationFlowshopSchedulingProblem Content
+    {
+      get { return (PermutationFlowshopSchedulingProblem)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public JobShopSchedulingProblemView() {
+      InitializeComponent();
+      Controls.Remove(parameterCollectionView);
+      parameterCollectionView.Dock = DockStyle.Fill;
+      problemTabPage.Controls.Add(parameterCollectionView);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      FillGanttChart();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.BestKnownSolutionChanged -= Content_PermutationChanged;
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.BestKnownSolutionChanged += new EventHandler(Content_PermutationChanged);
+    }
+
+    private void Content_PermutationChanged(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_PermutationChanged), sender, e);
+      } else {
+        FillGanttChart();
+      }
+    }
+
+    private void FillGanttChart() {
+      ganttChart.Reset();
+      if (Content != null) {
+        var matrix = Content.JobMatrix;
+        var perm = Content.BestKnownSolution;
+        if (matrix == null) { return; }
+
+        if (perm == null) {
+          perm = new Encodings.PermutationEncoding.Permutation(Encodings.PermutationEncoding.PermutationTypes.Absolute, Enumerable.Range(0, matrix.Columns).ToArray());
+        }
+
+        int[] permutation = perm.ToArray();
+
+        if (!permutation.Contains(0)) { permutation = permutation.Select(v => v - 1).ToArray(); }
+        DoubleMatrix calculatedTime = new DoubleMatrix(matrix.Rows, matrix.Columns);
+
+        for (var machineIdx = 0; machineIdx < matrix.Rows; machineIdx++) {
+          for (var jobIdx = 0; jobIdx < matrix.Columns; jobIdx++) {
+            double runtimeCur = matrix[machineIdx, permutation[jobIdx]];
+            double runtimePrev = 0;
+
+            if (jobIdx == 0 && machineIdx == 0) { } else if (machineIdx == 0) { runtimePrev = calculatedTime[machineIdx, jobIdx - 1]; } else if (jobIdx == 0) { runtimePrev = calculatedTime[machineIdx - 1, jobIdx]; } else {
+              double runtimePrevMachine = calculatedTime[machineIdx - 1, jobIdx];
+              double runtimePrevJobOnThisMachine = calculatedTime[machineIdx, jobIdx - 1];
+              runtimePrev = runtimePrevMachine > runtimePrevJobOnThisMachine ? runtimePrevMachine : runtimePrevJobOnThisMachine;
+            }
+
+            calculatedTime[machineIdx, jobIdx] = runtimeCur + runtimePrev;
+            ganttChart.AddData("Machine " + machineIdx, permutation[jobIdx], jobIdx, runtimePrev, calculatedTime[machineIdx, jobIdx], "");
+          }
+        }
+      }
+    }
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Plugin.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Plugin.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Plugin.cs	(revision 15661)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.PermutationProblems.Views {
+  [Plugin("HeuristicLab.Problems.PermutationProblems.Views", "3.3.15.0")]
+  [PluginFile("HeuristicLab.Problems.PermutationProblems.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Collections", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Data", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.ScheduleEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.ScheduleEncoding.Views", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.PermutationProblems", "3.3")]
+  public class HeuristicLabProblemsSchedulingViewsPlugin : PluginBase {
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Plugin.cs.frame
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Plugin.cs.frame	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Plugin.cs.frame	(revision 15661)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.PermutationProblems.Views {
+  [Plugin("HeuristicLab.Problems.PermutationProblems.Views", "3.3.15.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.PermutationProblems.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Collections", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Data", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.ScheduleEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.ScheduleEncoding.Views", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization.Views", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.PermutationProblems", "3.3")]
+  public class HeuristicLabProblemsSchedulingViewsPlugin : PluginBase {
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Properties/AssemblyInfo.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Properties/AssemblyInfo.cs	(revision 15661)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.PermutationProblems.Views")]
+[assembly: AssemblyDescription("Views of the HeuristicLab PFSP Problem classes")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2016 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("ABF1DB5E-5774-48AB-B65A-5CF405C0E2A8")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.14.0")]
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 15661)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.PermutationProblems.Views")]
+[assembly: AssemblyDescription("Views of the HeuristicLab PFSP Problem classes")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2016 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("ABF1DB5E-5774-48AB-B65A-5CF405C0E2A8")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.14.$WCREV$")]
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/HeuristicLab.Problems.PermutationProblems-3.3.csproj
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/HeuristicLab.Problems.PermutationProblems-3.3.csproj	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/HeuristicLab.Problems.PermutationProblems-3.3.csproj	(revision 15661)
@@ -0,0 +1,124 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{51650B00-4CA6-41FF-8CB6-165FCACC3B51}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Problems.PermutationProblems</RootNamespace>
+    <AssemblyName>HeuristicLab.Problems.PermutationProblems-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HeuristicLab.Collections-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Common-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Common.Resources-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Core-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Encodings.IntegerVectorEncoding-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.PermutationEncoding-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Encodings.ScheduleEncoding.Views-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Operators-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Parameters-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Persistence-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="LinearOrderingProblem.cs" />
+    <Compile Include="PermutationFlowshopSchedulingProblem.cs" />
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Plugin.cs.frame" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540e29e-4793-49e7-8ee2-fea7f61c3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/LinearOrderingProblem.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/LinearOrderingProblem.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/LinearOrderingProblem.cs	(revision 15661)
@@ -0,0 +1,160 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Optimization;
+using System.Collections.Generic;
+using HeuristicLab.Problems.Instances.Types;
+using HeuristicLab.Problems.Instances;
+
+namespace HeuristicLab.Problems.PermutationProblems {
+  [Item("Linear Ordering Problem (LOP)", "Represents a Linear Ordering Problem")]
+  [Creatable(CreatableAttribute.Categories.CombinatorialProblems)]
+  [StorableClass]
+  public sealed class LinearOrderingProblem : SingleObjectiveBasicProblem<PermutationEncoding>, IProblemInstanceConsumer<LOPData>, IProblemInstanceExporter<LOPData>, IStorableContent {
+    #region Fields
+    private static readonly LOPData DefaultInstance = new LOPData() {
+      Name = "Linaer Ordering Problem (LOP)",
+      Description = "The default instance of the LOP in HeuristicLab",
+      Dimension = 4,
+      Matrix = new double[,] {
+                {0 ,3, 6 ,6},
+                {2 ,0, 8 ,4},
+                {4 ,2, 0 ,4},
+                {5 ,3, 8 ,0}
+            }
+    };
+    public event EventHandler BestKnownSolutionChanged;
+    #endregion
+
+    #region Getter/Setter
+    public OptionalValueParameter<Permutation> BestKnownSolutionParameter
+    {
+      get { return (OptionalValueParameter<Permutation>)Parameters["BestKnownSolution"]; }
+    }
+    public OptionalValueParameter<DoubleMatrix> MatrixParameter
+    {
+      get { return (OptionalValueParameter<DoubleMatrix>)Parameters["Matrix"]; }
+    }
+    public Permutation BestKnownSolution
+    {
+      get { return BestKnownSolutionParameter.Value; }
+      set
+      {
+        BestKnownSolutionParameter.Value = value;
+        if (BestKnownSolutionChanged != null) { OnBestKnownSolutionChanged(); }
+      }
+    }
+    public DoubleMatrix Matrix
+    {
+      get { return MatrixParameter.Value; }
+      set { MatrixParameter.Value = value; }
+    }
+
+    public override bool Maximization { get { return true; } }
+    #endregion
+
+    #region Ctor
+    [StorableConstructor]
+    private LinearOrderingProblem(bool deserializing) : base(deserializing) { }
+    private LinearOrderingProblem(LinearOrderingProblem original, Cloner cloner) : base(original, cloner) { }
+    public LinearOrderingProblem() {
+      Parameters.Add(new OptionalValueParameter<Permutation>("BestKnownSolution", "The best known solution of this LOP instance."));
+      Parameters.Add(new OptionalValueParameter<DoubleMatrix>("Matrix", "The matrix which contains the corresponding LOP-values"));
+
+      Load(DefaultInstance);
+      EvaluatorParameter.GetsCollected = false;
+      EvaluatorParameter.Hidden = true;
+
+      Evaluator.QualityParameter.ActualName = "SuperDiagonale";
+    }
+    #endregion
+
+    #region Methods
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new LinearOrderingProblem(this, cloner);
+    }
+
+    public void Load(LOPData data) {
+      if (data.BestKnownQuality.HasValue) {
+        BestKnownQuality = data.BestKnownQuality.Value;
+      }
+      Name = data.Name;
+      Description = data.Description;
+      Matrix = new DoubleMatrix(data.Matrix);
+      Encoding.Length = Matrix.Columns;
+
+      if (data.BestKnownPermutation != null) {
+        int[] permut = data.BestKnownPermutation;
+        //Clean up if the first index = 1
+        if (!permut.Contains(0)) { permut = permut.Select(v => v - 1).ToArray(); }
+
+        BestKnownSolution = new Permutation(PermutationTypes.Absolute, data.BestKnownPermutation);
+        BestKnownQuality = Evaluate(permut, Matrix);
+      }
+    }
+
+    public LOPData Export() {
+      var result = new LOPData {
+        Name = Name,
+        Description = Description,
+        BestKnownQuality = BestKnownQuality,
+        BestKnownPermutation = BestKnownSolution.ToArray(),
+        Dimension = Matrix.Rows,
+        Matrix = Matrix.CloneAsMatrix()
+      };
+
+      return result;
+    }
+
+    public override double Evaluate(Individual individual, IRandom random) {
+      return Evaluate(individual.Permutation().ToArray(), Matrix);
+    }
+
+    #endregion
+
+    #region Helper Methods
+    private void OnBestKnownSolutionChanged() {
+      BestKnownSolutionChanged?.Invoke(this, EventArgs.Empty);
+    }
+
+    private double Evaluate(int[] permutation, DoubleMatrix matrix) {
+      double sum = 0;
+      for (int i = 1; i < matrix.Columns; i++) {
+        for (int j = 0; j < i; j++) {
+          sum += matrix[permutation[j], permutation[i]];
+        }
+      }
+
+      return sum;
+    }
+    #endregion
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/PermutationFlowshopSchedulingProblem.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/PermutationFlowshopSchedulingProblem.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/PermutationFlowshopSchedulingProblem.cs	(revision 15661)
@@ -0,0 +1,191 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.Instances;
+using HeuristicLab.Optimization;
+
+
+namespace HeuristicLab.Problems.PermutationProblems {
+  [Item("Permutation Flowshop Scheduling Problem (PFSP)", "Represents a Permutation Flowshop Scheduling Problem")]
+  [Creatable(CreatableAttribute.Categories.CombinatorialProblems)]
+  [StorableClass]
+  public sealed class PermutationFlowshopSchedulingProblem : SingleObjectiveBasicProblem<PermutationEncoding>, IProblemInstanceConsumer<FSSPData>, IProblemInstanceExporter<FSSPData> {
+    #region Fields
+    private static readonly FSSPData DefaultInstance = new FSSPData() {
+      Name = "Permutation Flowshop Scheduling Problem (PFSP)",
+      Description = "The default instance of the PFSP problem in HeuristicLab",
+      Jobs = 4,
+      Machines = 4,
+      //BestKnownQuality = 328,
+      ProcessingTimes = new double[,] {
+                {5 ,3, 6 ,6 },
+                {2 ,4, 8 ,4},
+                {4 ,2, 7 ,4},
+                {5 ,3, 8 ,6}
+            }
+    };
+    public event EventHandler BestKnownSolutionChanged;
+    #endregion
+
+    #region Getter/Setter
+    public OptionalValueParameter<Permutation> BestKnownSolutionParameter
+    {
+      get { return (OptionalValueParameter<Permutation>)Parameters["BestKnownSolution"]; }
+    }
+    public OptionalValueParameter<DoubleMatrix> JobMatrixParameter
+    {
+      get { return (OptionalValueParameter<DoubleMatrix>)Parameters["JobMatrix"]; }
+    }
+    public Permutation BestKnownSolution
+    {
+      get { return BestKnownSolutionParameter.Value; }
+      set
+      {
+        BestKnownSolutionParameter.Value = value;
+        if (BestKnownSolutionChanged != null) { OnBestKnownSolutionChanged(); }
+      }
+    }
+    public DoubleMatrix JobMatrix
+    {
+      get { return JobMatrixParameter.Value; }
+      set { JobMatrixParameter.Value = value; }
+    }
+
+    public override bool Maximization { get { return false; } }
+    #endregion
+
+    #region Ctor
+    [StorableConstructor]
+    private PermutationFlowshopSchedulingProblem(bool deserializing) : base(deserializing) { }
+    private PermutationFlowshopSchedulingProblem(PermutationFlowshopSchedulingProblem original, Cloner cloner) : base(original, cloner) { }
+    public PermutationFlowshopSchedulingProblem() {
+      Parameters.Add(new OptionalValueParameter<Permutation>("BestKnownSolution", "The best known solution of this FSSP instance."));
+      Parameters.Add(new OptionalValueParameter<DoubleMatrix>("JobMatrix", "The matrix which contains the jobs,machines and duration."));
+
+      Load(DefaultInstance);
+      EvaluatorParameter.GetsCollected = false;
+      EvaluatorParameter.Hidden = true;
+
+      Evaluator.QualityParameter.ActualName = "Makespan";
+    }
+    #endregion
+
+    #region Methods
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new PermutationFlowshopSchedulingProblem(this, cloner);
+    }
+
+    public void Load(FSSPData data) {
+      if (data.BestKnownQuality.HasValue) {
+        BestKnownQuality = data.BestKnownQuality.Value;
+      }
+      Name = data.Name;
+      Description = data.Description;
+      JobMatrix = new DoubleMatrix(data.ProcessingTimes);
+      Encoding.Length = JobMatrix.Columns;
+
+      if (data.BestKnownSchedule != null) {
+        int[] permut = data.BestKnownSchedule;
+        //Clean up if the first index = 1
+        if (!permut.Contains(0)) { permut = permut.Select(v => v - 1).ToArray(); }
+
+        BestKnownSolution = new Permutation(PermutationTypes.Absolute, data.BestKnownSchedule);
+        BestKnownQuality = Evaluate(permut, JobMatrix);
+      }
+    }
+    public FSSPData Export() {
+      var result = new FSSPData {
+        Name = Name,
+        Description = Description,
+        ProcessingTimes = new double[JobMatrix.Rows, JobMatrix.Columns]
+      };
+
+      result.BestKnownQuality = BestKnownQuality;
+
+      if (JobMatrix != null) {
+        result.Jobs = JobMatrix.Rows;
+        result.Machines = JobMatrix.Columns;
+      }
+
+      for (int i = 0; i < JobMatrix.Rows; i++) {
+        for (int j = 0; j < JobMatrix.Columns; j++) {
+          result.ProcessingTimes[i, j] = JobMatrix[i, j];
+        }
+      }
+
+      result.BestKnownSchedule = BestKnownSolution != null ? (BestKnownSolution as IntArray).ToArray() : null;
+
+      return result;
+    }
+
+    public override double Evaluate(Individual individual, IRandom random) {
+      return Evaluate(individual.Permutation().ToArray(), JobMatrix);
+    }
+    #endregion
+
+    #region Helper Methods
+    private void OnBestKnownSolutionChanged() {
+      BestKnownSolutionChanged?.Invoke(this, EventArgs.Empty);
+    }
+
+    /// <summary>
+    /// Calculates the makespan (cMax), meaning the total time from start till the last job on the last machine is done
+    /// </summary>
+    /// <param name="permutation"></param>
+    /// <param name="matrix"></param>
+    /// <returns></returns>
+    private double Evaluate(int[] permutation, DoubleMatrix matrix) {
+      DoubleMatrix calculatedTime = new DoubleMatrix(matrix.Rows, matrix.Columns);
+      double runtimePrev;
+
+      double runtimePrevMachine;
+      double runtimePrevJobOnThisMachine;
+
+      for (var machineIdx = 0; machineIdx < matrix.Rows; machineIdx++) {
+        for (var jobIdx = 0; jobIdx < matrix.Columns; jobIdx++) {
+          runtimePrev = 0;
+
+          if (jobIdx == 0 && machineIdx == 0) {  //Nothing to calculate
+          } else if (machineIdx == 0) {
+            runtimePrev = calculatedTime[machineIdx, jobIdx - 1];
+          } else if (jobIdx == 0) {
+            runtimePrev = calculatedTime[machineIdx - 1, jobIdx];
+          } else {
+            runtimePrevMachine = calculatedTime[machineIdx - 1, jobIdx];
+            runtimePrevJobOnThisMachine = calculatedTime[machineIdx, jobIdx - 1];
+            runtimePrev = runtimePrevMachine > runtimePrevJobOnThisMachine ? runtimePrevMachine : runtimePrevJobOnThisMachine;
+          }
+          calculatedTime[machineIdx, jobIdx] = matrix[machineIdx, permutation[jobIdx]] + runtimePrev;
+        }
+      }
+      return calculatedTime[calculatedTime.Rows - 1, calculatedTime.Columns - 1];
+    }
+    #endregion
+  }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Plugin.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Plugin.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Plugin.cs	(revision 15661)
@@ -0,0 +1,42 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.PermutationProblems
+{
+  [Plugin("HeuristicLab.Problems.PermutationProblems", "3.3.15.0")]
+  [PluginFile("HeuristicLab.Problems.PermutationProblems-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Collections", "3.3")]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Data", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.IntegerVectorEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.PermutationEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.ScheduleEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Operators", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Parameters", "3.3")]
+  [PluginDependency("HeuristicLab.Persistence", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  public class HeuristicLabProblemsPFSPPlugin : PluginBase { }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Plugin.cs.frame
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Plugin.cs.frame	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Plugin.cs.frame	(revision 15661)
@@ -0,0 +1,42 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.PermutationProblems
+{
+  [Plugin("HeuristicLab.Problems.PermutationProblems", "3.3.15.$WCREV$")]
+  [PluginFile("HeuristicLab.Problems.PermutationProblems-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Collections", "3.3")]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Data", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.IntegerVectorEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.PermutationEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Encodings.ScheduleEncoding", "3.3")]
+  [PluginDependency("HeuristicLab.Operators", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Parameters", "3.3")]
+  [PluginDependency("HeuristicLab.Persistence", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  public class HeuristicLabProblemsPFSPPlugin : PluginBase { }
+}
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Properties/AssemblyInfo.cs	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Properties/AssemblyInfo.cs	(revision 15661)
@@ -0,0 +1,57 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.PermutationProblems")]
+[assembly: AssemblyDescription("HeuristicLab Permutation Flowshop Scheduling Problem classes")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2016 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("51650b00-4ca6-41ff-8cb6-165fcacc3b51")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.14.0")]
+
Index: /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Properties/AssemblyInfo.cs.frame	(revision 15661)
+++ /branches/2864_PermutationProblems/HeuristicLab.Problems.PermutationProblems/3.3/Properties/AssemblyInfo.cs.frame	(revision 15661)
@@ -0,0 +1,57 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.PermutationProblems")]
+[assembly: AssemblyDescription("HeuristicLab Permutation Flowshop Scheduling Problem classes")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2016 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("51650b00-4ca6-41ff-8cb6-165fcacc3b51")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.14.$WCREV$")]
+
Index: /branches/2864_PermutationProblems/PermutationProblems.sln
===================================================================
--- /branches/2864_PermutationProblems/PermutationProblems.sln	(revision 15660)
+++ /branches/2864_PermutationProblems/PermutationProblems.sln	(revision 15661)
@@ -2,17 +2,13 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 15
-VisualStudioVersion = 15.0.27004.2010
+VisualStudioVersion = 15.0.27130.2024
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.PFSP-3.3", "HeuristicLab.Problems.Instances.PFSP\3.3\HeuristicLab.Problems.Instances.PFSP-3.3.csproj", "{9412AA5F-D663-4AF4-B58B-D90FABB343BF}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances-3.3", "HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj", "{3540E29E-4793-49E7-8EE2-FEA7F61C3994}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.LinearOrdering-3.3", "HeuristicLab.Problems.LinearOrdering\3.3\HeuristicLab.Problems.LinearOrdering-3.3.csproj", "{050358B8-2DBA-4224-8AA6-5EB03D86999A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.PermutationProblems-3.3", "HeuristicLab.Problems.Instances.PermutationProblems\3.3\HeuristicLab.Problems.Instances.PermutationProblems-3.3.csproj", "{648F0BF0-6301-448C-816F-DEB1E65EC73F}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.PFSP-3.3", "HeuristicLab.Problems.PFSP\3.3\HeuristicLab.Problems.PFSP-3.3.csproj", "{51650B00-4CA6-41FF-8CB6-165FCACC3B51}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.PermutationProblems-3.3", "HeuristicLab.Problems.PermutationProblems\3.3\HeuristicLab.Problems.PermutationProblems-3.3.csproj", "{51650B00-4CA6-41FF-8CB6-165FCACC3B51}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.PFSP.Views-3.3", "HeuristicLab.Problems.PFSP.Views\3.3\HeuristicLab.Problems.PFSP.Views-3.3.csproj", "{F53AECD6-061C-4A62-B2DB-51E36EECBB79}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.LinearOrdering-3.3", "HeuristicLab.Problems.Instances.LinearOrdering\3.3\HeuristicLab.Problems.Instances.LinearOrdering-3.3.csproj", "{648F0BF0-6301-448C-816F-DEB1E65EC73F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances-3.3", "HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj", "{3540E29E-4793-49E7-8EE2-FEA7F61C3994}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.PermutationProblems.Views-3.3", "HeuristicLab.Problems.PermutationProblems.Views\3.3\HeuristicLab.Problems.PermutationProblems.Views-3.3.csproj", "{F53AECD6-061C-4A62-B2DB-51E36EECBB79}"
 EndProject
 Global
@@ -26,28 +22,28 @@
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Debug|x64.Build.0 = Debug|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Debug|x86.Build.0 = Debug|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Release|x64.ActiveCfg = Release|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Release|x64.Build.0 = Release|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Release|x86.ActiveCfg = Release|Any CPU
-		{9412AA5F-D663-4AF4-B58B-D90FABB343BF}.Release|x86.Build.0 = Release|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Debug|x64.Build.0 = Debug|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Debug|x86.Build.0 = Debug|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Release|x64.ActiveCfg = Release|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Release|x64.Build.0 = Release|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Release|x86.ActiveCfg = Release|Any CPU
-		{050358B8-2DBA-4224-8AA6-5EB03D86999A}.Release|x86.Build.0 = Release|Any CPU
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.ActiveCfg = Debug|x64
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.Build.0 = Debug|x64
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.ActiveCfg = Debug|x86
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.Build.0 = Debug|x86
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.ActiveCfg = Release|x64
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.Build.0 = Release|x64
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.ActiveCfg = Release|x86
+		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.Build.0 = Release|x86
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x64.Build.0 = Debug|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x86.Build.0 = Debug|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x64.ActiveCfg = Release|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x64.Build.0 = Release|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x86.ActiveCfg = Release|Any CPU
+		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x86.Build.0 = Release|Any CPU
 		{51650B00-4CA6-41FF-8CB6-165FCACC3B51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{51650B00-4CA6-41FF-8CB6-165FCACC3B51}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -74,28 +70,4 @@
 		{F53AECD6-061C-4A62-B2DB-51E36EECBB79}.Release|x86.ActiveCfg = Release|x86
 		{F53AECD6-061C-4A62-B2DB-51E36EECBB79}.Release|x86.Build.0 = Release|x86
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x64.Build.0 = Debug|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Debug|x86.Build.0 = Debug|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x64.ActiveCfg = Release|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x64.Build.0 = Release|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x86.ActiveCfg = Release|Any CPU
-		{648F0BF0-6301-448C-816F-DEB1E65EC73F}.Release|x86.Build.0 = Release|Any CPU
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.ActiveCfg = Debug|x64
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.Build.0 = Debug|x64
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.ActiveCfg = Debug|x86
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.Build.0 = Debug|x86
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.ActiveCfg = Release|x64
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.Build.0 = Release|x64
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.ActiveCfg = Release|x86
-		{3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
