Index: /branches/HiveStatistics/sources/HeuristicLab.Clients.Access/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Clients.Access/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Clients.Access/3.3/app.config	(revision 12584)
@@ -20,7 +20,7 @@
         </bindings>
         <client>
-            <endpoint address="http://services.heuristiclab.com/AccessService-3.3/AccessService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAccessService" contract="HeuristicLab.Clients.Access.IAccessService" name="WSHttpBinding_IAccessService">
+            <endpoint address="http://localhost/AccessService-3.3/AccessService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAccessService" contract="HeuristicLab.Clients.Access.IAccessService" name="WSHttpBinding_IAccessService">
                 <identity>
-                    <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
                 </identity>
             </endpoint>
Index: /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/app.config	(revision 12584)
@@ -50,12 +50,12 @@
    <client>
      <endpoint name="SlaveCommunicationServiceEndpoint" address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
-    <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+    <endpoint address="http://localhost/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
       <identity>
-        <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+        <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
       </identity>
     </endpoint>
-     <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+     <endpoint address="net.tcp://localhost/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
        <identity>
-         <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+        <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
        </identity>
      </endpoint>
Index: /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config	(revision 12584)
@@ -50,12 +50,12 @@
     <client>
       <endpoint name="SlaveCommunicationServiceEndpoint" address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+      <endpoint address="http://localhost/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+      <endpoint address="net.tcp://localhost/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
Index: /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive.Slave/3.3/app.config	(revision 12584)
@@ -52,12 +52,12 @@
     <client>
       <endpoint name="SlaveCommunicationServiceEndpoint" address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+      <endpoint address="http://localhost/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+      <endpoint address="net.tcp://localhost/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
Index: /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Clients.Hive/3.3/app.config	(revision 12584)
@@ -70,12 +70,12 @@
     </bindings>
     <client>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+      <endpoint address="http://localhost/Hive-3.3/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
+      <endpoint address="net.tcp://localhost/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="netTcpBinding_Hive" contract="HeuristicLab.Clients.Hive.IHiveService" name="netTcpBinding_IHiveService" behaviorConfiguration="HiveBehaviorConfiguration">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
Index: /branches/HiveStatistics/sources/HeuristicLab.Clients.OKB/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Clients.OKB/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Clients.OKB/3.3/app.config	(revision 12584)
@@ -46,17 +46,17 @@
     </bindings>
     <client>
-      <endpoint address="http://services.heuristiclab.com/OKB-3.3/AdministrationService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdministrationService" contract="HeuristicLab.Clients.OKB.Administration.IAdministrationService" name="WSHttpBinding_IAdministrationService" behaviorConfiguration="DefaultEndpointBehavior">
+      <endpoint address="http://localhost/OKB-3.3/AdministrationService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdministrationService" contract="HeuristicLab.Clients.OKB.Administration.IAdministrationService" name="WSHttpBinding_IAdministrationService" behaviorConfiguration="DefaultEndpointBehavior">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
-      <endpoint address="http://services.heuristiclab.com/OKB-3.3/RunCreationService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IRunCreationService" contract="HeuristicLab.Clients.OKB.RunCreation.IRunCreationService" name="WSHttpBinding_IRunCreationService" behaviorConfiguration="DefaultEndpointBehavior">
+      <endpoint address="http://localhost/OKB-3.3/RunCreationService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IRunCreationService" contract="HeuristicLab.Clients.OKB.RunCreation.IRunCreationService" name="WSHttpBinding_IRunCreationService" behaviorConfiguration="DefaultEndpointBehavior">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
-      <endpoint address="http://services.heuristiclab.com/OKB-3.3/QueryService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IQueryService" contract="HeuristicLab.Clients.OKB.Query.IQueryService" name="WSHttpBinding_IQueryService" behaviorConfiguration="DefaultEndpointBehavior">
+      <endpoint address="http://localhost/OKB-3.3/QueryService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IQueryService" contract="HeuristicLab.Clients.OKB.Query.IQueryService" name="WSHttpBinding_IQueryService" behaviorConfiguration="DefaultEndpointBehavior">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
Index: /branches/HiveStatistics/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj	(revision 12584)
@@ -165,7 +165,5 @@
     <None Include="Plugin.cs.frame" />
     <Compile Include="Controls\ControlExtensions.cs" />
-    <Compile Include="MainForms\DockForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
+    <Compile Include="MainForms\DockForm.cs" />
     <Compile Include="MainForms\DockForm.Designer.cs">
       <DependentUpon>DockForm.cs</DependentUpon>
Index: /branches/HiveStatistics/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlParser.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlParser.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlParser.cs	(revision 12584)
@@ -193,6 +193,11 @@
       try {
         using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) {
-          using (ZipArchive zip = new ZipArchive(fs)) {
-            return Deserialize(zip);
+          try {
+            using (ZipArchive zip = new ZipArchive(fs)) {
+              return Deserialize(zip);
+            }
+          }
+          catch (Exception) {
+            return DeserializeWithGZip(fs);
           }
         }
Index: /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs	(revision 12584)
@@ -35,5 +35,5 @@
     /// </summary>
     static AdminServiceClientFactory() {
-      var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer");
+      var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.localhost.cer");
       serverCrtData = new byte[stream.Length];
       stream.Read(serverCrtData, 0, serverCrtData.Length);
Index: /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd	(revision 12584)
@@ -7,6 +7,6 @@
 
 svcutil.exe ^
-  http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc/mex ^
-  http://services.heuristiclab.com/Deployment-3.3/AdminService.svc/mex ^
+  http://localhost/Deployment-3.3/UpdateService.svc/mex ^
+  http://localhost/Deployment-3.3/AdminService.svc/mex ^
   /out:ServiceClients ^
   /namespace:*,HeuristicLab.PluginInfrastructure.Advanced.DeploymentService ^
Index: /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs	(revision 12584)
@@ -35,5 +35,5 @@
     /// </summary>
     static UpdateServiceClientFactory() {
-      var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer");
+      var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.localhost.cer");
       serverCrtData = new byte[stream.Length];
       stream.Read(serverCrtData, 0, serverCrtData.Length);
Index: /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs	(revision 12584)
@@ -62,5 +62,5 @@
         [global::System.Configuration.UserScopedSettingAttribute()]
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc")]
+        [global::System.Configuration.DefaultSettingValueAttribute("http://localhost/Deployment-3.3/UpdateService.svc")]
         public string UpdateLocation {
             get {
@@ -74,5 +74,5 @@
         [global::System.Configuration.UserScopedSettingAttribute()]
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/AdminService.svc")]
+        [global::System.Configuration.DefaultSettingValueAttribute("http://localhost/Deployment-3.3/AdminService.svc")]
         public string UpdateLocationAdministrationAddress {
             get {
Index: /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.settings
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.settings	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.settings	(revision 12584)
@@ -13,8 +13,8 @@
     </Setting>
     <Setting Name="UpdateLocation" Type="System.String" Scope="User">
-      <Value Profile="(Default)">http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc</Value>
+      <Value Profile="(Default)">http://localhost/Deployment-3.3/UpdateService.svc</Value>
     </Setting>
     <Setting Name="UpdateLocationAdministrationAddress" Type="System.String" Scope="User">
-      <Value Profile="(Default)">http://services.heuristiclab.com/Deployment-3.3/AdminService.svc</Value>
+      <Value Profile="(Default)">http://localhost/Deployment-3.3/AdminService.svc</Value>
     </Setting>
   </Settings>
Index: /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.PluginInfrastructure/3.3/app.config	(revision 12584)
@@ -19,8 +19,8 @@
       </setting>
       <setting name="UpdateLocation" serializeAs="String">
-        <value>http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc</value>
+        <value>http://localhost/Deployment-3.3/UpdateService.svc</value>
       </setting>
       <setting name="UpdateLocationAdministrationAddress" serializeAs="String">
-        <value>http://services.heuristiclab.com/Deployment-3.3/AdminService.svc</value>
+        <value>http://localhost/Deployment-3.3/AdminService.svc</value>
       </setting>
     </HeuristicLab.PluginInfrastructure.Properties.Settings>
@@ -51,12 +51,12 @@
 
     <client>
-      <endpoint address="http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUpdateService" contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService" name="WSHttpBinding_IUpdateService">
+      <endpoint address="http://localhost/Deployment-3.3/UpdateService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUpdateService" contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService" name="WSHttpBinding_IUpdateService">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
-      <endpoint address="http://services.heuristiclab.com/Deployment-3.3/AdminService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService" contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService" name="WSHttpBinding_IAdminService">
+      <endpoint address="http://localhost/Deployment-3.3/AdminService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService" contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService" name="WSHttpBinding_IAdminService">
         <identity>
-          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAsBAiQNbfReR5pYaSMZcalnXNehMgAAAAAQAAANUBAAAwggHRMIIBOqADAgECAhBZk8ZrPkmUv0lw+rA4krQ5MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNDAzMDUxMjAyMDBaFw0xOTAzMDUwMDAwMDBaMBQxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApeJ7tPwPHlTw7Q3P0vsdZYbLV3uG1nlXsdxWLGlfNjo4AUaIm2W9Kj0Kkr2e5b65mhWxt7vBfiAE2WLyb4raQo+ZLMTjCy5NSFlEFbxtOIXNZFXIpLJpdzwKAtWsQlr8Eliu5DTjs/WXd+MbimeEjXg6KuTVxeLXaf4ZfMmpoLsCAwEAAaMkMCIwCwYDVR0PBAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4GBAKHyEdLKZBdMHjmKYuGpZ46Io65X+IhvQsL+vggkzhpORwaZUOkwDct3rK9vIfm+1l0vbd3vhqmo4wEvUGBPGm76/Uyd1XkAyVtl7IyjLv7su/1H51bWHggdnyDDqG8f5lzd1ZAqSKu/V8JIymwR9WIlIzgB1lZzWliyl4x8e0I9"/>
         </identity>
       </endpoint>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj	(revision 12584)
@@ -135,8 +135,12 @@
   </ItemGroup>
   <ItemGroup>
-    <None Include="App.config" />
+    <None Include="App.config">
+      <SubType>Designer</SubType>
+    </None>
     <None Include="HeuristicLab.snk" />
     <None Include="Properties\AssemblyInfo.cs.frame" />
-    <None Include="Web.config" />
+    <None Include="Web.config">
+      <SubType>Designer</SubType>
+    </None>
   </ItemGroup>
   <ItemGroup>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Access/3.3/Web.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Access/3.3/Web.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Access/3.3/Web.config	(revision 12584)
@@ -65,5 +65,5 @@
           <serviceDebug includeExceptionDetailInFaults="true" />
           <serviceCredentials>           
-            <serviceCertificate findValue="services.heuristiclab.com" x509FindType="FindBySubjectName" />
+            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
             <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider" />          
           </serviceCredentials>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Deployment/3.3/App.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Deployment/3.3/App.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Deployment/3.3/App.config	(revision 12584)
@@ -27,10 +27,10 @@
     </sources>
     <sharedListeners>
-      <add initializeData="C:\inetpub\wwwroot\services.heuristiclab.com\Deployment-3.3\web_messages.svclog"
+      <add initializeData="C:\inetpub\wwwroot\localhost\Deployment-3.3\web_messages.svclog"
         type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
         <filter type="" />
       </add>
-      <add initializeData="C:\inetpub\wwwroot\services.heuristiclab.com\Deployment-3.3\web_tracelog.svclog"
+      <add initializeData="C:\inetpub\wwwroot\localhost\Deployment-3.3\web_tracelog.svclog"
         type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedResourceDao.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedResourceDao.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedResourceDao.cs	(revision 12584)
@@ -22,4 +22,5 @@
 using System;
 using System.Data.Linq;
+using System.Linq;
 
 namespace HeuristicLab.Services.Hive.DataAccess.Daos {
@@ -30,4 +31,8 @@
       throw new NotImplementedException();
     }
+
+    public IQueryable<AssignedResource> GetByTaskId(Guid taskId) {
+      return Table.Where(x => x.TaskId == taskId);
+    }
   }
 }
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/JobPermissionDao.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/JobPermissionDao.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/JobPermissionDao.cs	(revision 12584)
@@ -22,4 +22,5 @@
 using System;
 using System.Data.Linq;
+using System.Linq;
 
 namespace HeuristicLab.Services.Hive.DataAccess.Daos {
@@ -30,4 +31,8 @@
       throw new NotImplementedException();
     }
+
+    public JobPermission GetByJobAndUserId(Guid jobId, Guid userId) {
+      return Table.SingleOrDefault(x => x.JobId == jobId && x.GrantedUserId == userId);
+    }
   }
 }
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/StateLogDao.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/StateLogDao.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/StateLogDao.cs	(revision 12584)
@@ -26,4 +26,9 @@
 namespace HeuristicLab.Services.Hive.DataAccess.Daos {
   public class StateLogDao : GenericDao<Guid, StateLog> {
+
+    private Table<Task> TaskTable {
+      get { return DataContext.GetTable<Task>(); }
+    }
+
     public StateLogDao(DataContext dataContext) : base(dataContext) { }
 
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/TaskDao.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/TaskDao.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/TaskDao.cs	(revision 12584)
@@ -36,5 +36,5 @@
     }
 
-    public IQueryable<Task> GetAllByJobId(Guid id) {
+    public IQueryable<Task> GetByJobId(Guid id) {
       return Table.Where(x => x.JobId == id);
     }
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/SQL Scripts/Initialize Hive Database.sql
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/SQL Scripts/Initialize Hive Database.sql	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/SQL Scripts/Initialize Hive Database.sql	(revision 12584)
@@ -256,5 +256,4 @@
     CONSTRAINT [FK_FactClientInfo_DimUser] FOREIGN KEY ([UserId]) REFERENCES [statistics].[DimUser] ([UserId])
 );
-
 CREATE TABLE [statistics].[FactTask] (
   [TaskId]             UNIQUEIDENTIFIER NOT NULL,
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/app.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/app.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.DataAccess/3.3/app.config	(revision 12584)
@@ -7,5 +7,5 @@
   </configSections>
   <connectionStrings>
-    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True;" providerName="System.Data.SqlClient"/>
+    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True;" providerName="System.Data.SqlClient"/>
   </connectionStrings>
 <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup><applicationSettings>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/App_Data/PublishProfiles/Hive-3.3.pubxml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/App_Data/PublishProfiles/Hive-3.3.pubxml	(revision 12584)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/App_Data/PublishProfiles/Hive-3.3.pubxml	(revision 12584)
@@ -0,0 +1,51 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is used by the publish/package process of your Web project. You can customize the behavior of this process
+by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
+-->
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <WebPublishMethod>MSDeploy</WebPublishMethod>
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
+    <SiteUrlToLaunchAfterPublish />
+    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
+    <ExcludeApp_Data>False</ExcludeApp_Data>
+    <MSDeployServiceURL>localhost</MSDeployServiceURL>
+    <DeployIisAppPath>Default Web Site/Hive-3.3</DeployIisAppPath>
+    <RemoteSitePhysicalPath />
+    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
+    <MSDeployPublishMethod>InProc</MSDeployPublishMethod>
+    <EnableMSDeployBackup>False</EnableMSDeployBackup>
+    <UserName />
+    <_SavePWD>False</_SavePWD>
+    <PublishDatabaseSettings>
+      <Objects xmlns="">
+        <ObjectGroup Name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" Order="1" Enabled="False">
+          <Destination Path="" />
+          <Object Type="DbDacFx">
+            <PreSource Path="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True" includeData="False" />
+            <Source Path="$(IntermediateOutputPath)AutoScripts\HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
+          </Object>
+          <UpdateFrom Type="Web.Config">
+            <Source MatchValue="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True;" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
+          </UpdateFrom>
+        </ObjectGroup>
+        <ObjectGroup Name="HeuristicLab.Authentication" Order="2" Enabled="False">
+          <Destination Path="" />
+          <Object Type="DbDacFx">
+            <PreSource Path="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication" includeData="False" />
+            <Source Path="$(IntermediateOutputPath)AutoScripts\HeuristicLab.Authentication_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
+          </Object>
+          <UpdateFrom Type="Web.Config">
+            <Source MatchValue="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
+          </UpdateFrom>
+        </ObjectGroup>
+      </Objects>
+    </PublishDatabaseSettings>
+  </PropertyGroup>
+  <ItemGroup>
+    <MSDeployParameterValue Include="$(DeployParameterPrefix)HeuristicLab.Authentication-Web.config Connection String" />
+    <MSDeployParameterValue Include="$(DeployParameterPrefix)HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString-Web.config Connection String" />
+  </ItemGroup>
+</Project>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Web.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Web.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/Web.config	(revision 12584)
@@ -20,6 +20,6 @@
   </applicationSettings>
   <connectionStrings>
-    <add name="HeuristicLab.Authentication" connectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
-    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True;" providerName="System.Data.SqlClient"/>
+    <add name="HeuristicLab.Authentication" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
+    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True;" providerName="System.Data.SqlClient"/>
   </connectionStrings>
   <!--
@@ -104,5 +104,5 @@
         <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="MexTcpEndpoint" contract="IMetadataExchange"/>
         <endpoint address="" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" name="WSHttpBinding_IHiveService" contract="HeuristicLab.Services.Hive.ServiceContracts.IHiveService"/>
-        <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IHiveService" name="NetBinding_IHiveService" contract="HeuristicLab.Services.Hive.ServiceContracts.IHiveService"/>
+        <endpoint address="net.tcp://localhost/Hive-3.3/HiveService.svc" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IHiveService" name="NetBinding_IHiveService" contract="HeuristicLab.Services.Hive.ServiceContracts.IHiveService"/>
       </service>
     </services>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/website.publishproj
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/website.publishproj	(revision 12584)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Web/Hive-3.3/website.publishproj	(revision 12584)
@@ -0,0 +1,67 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+***********************************************************************************************
+website.publishproj
+
+WARNING: DO NOT MODIFY this file, it is used for the web publish process.
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+***********************************************************************************************
+-->
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>10.0.30319</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{7523325a-a0a3-4b85-be27-4f25187e0c0d}</ProjectGuid>
+    <SourceWebPhysicalPath>$(MSBuildThisFileDirectory)</SourceWebPhysicalPath>
+    <SourceWebVirtualPath>/Hive-3.3</SourceWebVirtualPath>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <SourceWebProject>C:\dglaser\HeuristicLab\branches\HiveStatistics\sources\HeuristicLab.Services.Hive.Web\Hive-3.3</SourceWebProject>
+    <SourceWebMetabasePath>/IISExpress/7.5/LM/W3SVC/3/ROOT</SourceWebMetabasePath>
+  </PropertyGroup>
+  <PropertyGroup>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+    <!-- for VS2010 we need to use 10.5 but for VS2012+ we should use VisualStudioVersion -->
+    <WebPublishTargetsVersion Condition=" '$(WebPublishTargetsVersion)' =='' and '$(VisualStudioVersion)' == 10.0 ">10.5</WebPublishTargetsVersion>
+    <WebPublishTargetsVersion Condition=" '$(WebPublishTargetsVersion)'=='' ">$(VisualStudioVersion)</WebPublishTargetsVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(WebPublishTargetsVersion)</VSToolsPath>
+    <_WebPublishTargetsPath Condition=" '$(_WebPublishTargetsPath)'=='' ">$(VSToolsPath)</_WebPublishTargetsPath>
+    <AssemblyFileVersion Condition="'$(AssemblyFileVersion)' == ''">1.0.0.0</AssemblyFileVersion>
+    <AssemblyVersion Condition="'$(AssemblyVersion)' == ''">1.0.0.0</AssemblyVersion>
+  </PropertyGroup>
+  <ItemGroup>
+    <AssemblyAttributes Include="AssemblyFileVersion">
+      <Value>$(AssemblyFileVersion)</Value>
+    </AssemblyAttributes>
+    <AssemblyAttributes Include="AssemblyVersion">
+      <Value>$(AssemblyVersion)</Value>
+    </AssemblyAttributes>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.ExtLibs\HeuristicLab.GeoIP\1.12\HeuristicLab.GeoIP.csproj">
+      <Project>{BE9B0229-9150-49A4-AEA6-BB58E055992F}</Project>
+      <Name>HeuristicLab.GeoIP</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Services.Access.DataAccess\3.3\HeuristicLab.Services.Access.DataAccess-3.3.csproj">
+      <Project>{0F652437-998A-4EAB-8BF1-444B5FE8CE97}</Project>
+      <Name>HeuristicLab.Services.Access.DataAccess-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Services.Access\3.3\HeuristicLab.Services.Access-3.3.csproj">
+      <Project>{9FAC0B23-2730-452A-9BA0-D7CA1746C541}</Project>
+      <Name>HeuristicLab.Services.Access-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Services.Hive.DataAccess\3.3\HeuristicLab.Services.Hive.DataAccess-3.3.csproj">
+      <Project>{EC2C8109-6E1E-4C88-9A2B-908CFF2EF4AC}</Project>
+      <Name>HeuristicLab.Services.Hive.DataAccess-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Services.Hive\3.3\HeuristicLab.Services.Hive-3.3.csproj">
+      <Project>{CF9DA321-AC1B-4FD3-9EC3-67BC6B861BDE}</Project>
+      <Name>HeuristicLab.Services.Hive-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(_WebPublishTargetsPath)\Web\Microsoft.WebSite.Publishing.targets" />
+</Project>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/Convert.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/Convert.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/Convert.cs	(revision 12584)
@@ -22,5 +22,4 @@
 using System;
 using System.Collections.Generic;
-using System.Data.Linq;
 using System.Linq;
 using DB = HeuristicLab.Services.Hive.DataAccess;
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/Converter.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/Converter.cs	(revision 12584)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/Converter.cs	(revision 12584)
@@ -0,0 +1,255 @@
+﻿using System;
+using System.Linq;
+using DA = HeuristicLab.Services.Hive.DataAccess;
+using DT = HeuristicLab.Services.Hive.DataTransfer;
+
+namespace HeuristicLab.Services.Hive {
+  public static class Converter {
+
+    #region Task
+    public static DT.Task ToDto(this DA.Task source) {
+      if (source == null) return null;
+      return new DT.Task {
+        Id = source.TaskId,
+        State = source.State.ToDto(),
+        ExecutionTime = TimeSpan.FromMilliseconds(source.ExecutionTimeMs),
+        LastHeartbeat = source.LastHeartbeat,
+        ParentTaskId = source.ParentTaskId,
+        Priority = source.Priority,
+        CoresNeeded = source.CoresNeeded,
+        MemoryNeeded = source.MemoryNeeded,
+        IsParentTask = source.IsParentTask,
+        FinishWhenChildJobsFinished = source.FinishWhenChildJobsFinished,
+        Command = source.Command.ToDto(),
+        JobId = source.JobId,
+        IsPrivileged = source.IsPrivileged,
+        PluginsNeededIds = source.RequiredPlugins.Select(x => x.PluginId).ToList(),
+        StateLog = source.StateLogs.Select(x => x.ToDto()).OrderBy(x => x.DateTime).ToList(),
+        LastTaskDataUpdate = source.JobData == null ? DateTime.MinValue : source.JobData.LastUpdate
+      };
+    }
+
+    public static DA.Task ToEntity(this DT.Task source) {
+      if (source == null) return null;
+      var result = new DA.Task();
+      source.CopyToEntity(result);
+      return result;
+    }
+
+    public static void CopyToEntity(this DT.Task source, DA.Task target) {
+      if ((source == null) || (target == null)) return;
+      target.TaskId = source.Id;
+      target.State = source.State.ToEntity();
+      target.ExecutionTimeMs = source.ExecutionTime.TotalMilliseconds;
+      target.LastHeartbeat = source.LastHeartbeat;
+      target.ParentTaskId = source.ParentTaskId;
+      target.Priority = source.Priority;
+      target.CoresNeeded = source.CoresNeeded;
+      target.MemoryNeeded = source.MemoryNeeded;
+      target.IsParentTask = source.IsParentTask;
+      target.FinishWhenChildJobsFinished = source.FinishWhenChildJobsFinished;
+      target.Command = source.Command.ToEntity();
+      target.JobId = source.JobId;
+      target.IsPrivileged = source.IsPrivileged;
+      var ids = target.RequiredPlugins.Select(x => x.PluginId);
+      target.RequiredPlugins.AddRange(source.PluginsNeededIds
+        .Where(x => !ids.Contains(x))
+        .Select(x => new DA.RequiredPlugin {
+          PluginId = x
+        })
+      );
+      target.StateLogs.AddRange(source.StateLog
+        .Where(x => x.Id == Guid.Empty)
+        .Select(x => x.ToEntity())
+      );
+      // result.JobData missing
+      // result.AssignedResources missing
+    }
+    #endregion
+
+    #region TaskData
+    public static DT.TaskData ToDto(this DA.TaskData source) {
+      if (source == null) return null;
+      return new DT.TaskData {
+        TaskId = source.TaskId,
+        Data = source.Data,
+        LastUpdate = source.LastUpdate
+      };
+    }
+
+    public static DA.TaskData ToEntity(this DT.TaskData source) {
+      if (source == null) return null;
+      var result = new DA.TaskData();
+      source.CopyToEntity(result);
+      return result;
+    }
+
+    public static void CopyToEntity(this DT.TaskData source, DA.TaskData target) {
+      if ((source == null) || (target == null)) return;
+      target.TaskId = source.TaskId;
+      target.Data = source.Data;
+      target.LastUpdate = source.LastUpdate;
+    }
+    #endregion
+
+    #region Job
+    public static DT.Job ToDto(this DA.Job source) {
+      return new DT.Job {
+        Id = source.JobId,
+        Description = source.Description,
+        Name = source.Name,
+        OwnerUserId = source.OwnerUserId,
+        DateCreated = source.DateCreated,
+        ResourceNames = source.ResourceIds
+      };
+    }
+
+    public static DA.Job ToEntity(this DT.Job source) {
+      if (source == null) return null;
+      var result = new DA.Job();
+      source.CopyToEntity(result);
+      return result;
+    }
+
+    public static void CopyToEntity(this DT.Job source, DA.Job target) {
+      if ((source == null) || (target == null)) return;
+      target.JobId = source.Id;
+      target.Description = source.Description;
+      target.Name = source.Name;
+      target.OwnerUserId = source.OwnerUserId;
+      target.DateCreated = source.DateCreated;
+      target.ResourceIds = source.ResourceNames;
+    }
+    #endregion
+
+    #region JobPermission
+    public static DT.JobPermission ToDto(this DA.JobPermission source) {
+      if (source == null) return null;
+      return new DT.JobPermission {
+        JobId = source.JobId,
+        GrantedUserId = source.GrantedUserId,
+        GrantedByUserId = source.GrantedByUserId,
+        Permission = source.Permission.ToDto()
+      };
+    }
+
+    public static DA.JobPermission ToEntity(this DT.JobPermission source) {
+      if (source == null) return null;
+      var result = new DA.JobPermission();
+      source.CopyToEntity(result);
+      return result;
+    }
+
+    public static void CopyToEntity(this DT.JobPermission source, DA.JobPermission target) {
+      if ((source == null) || (target == null)) return;
+      target.JobId = source.JobId;
+      target.GrantedUserId = source.GrantedUserId;
+      target.GrantedByUserId = source.GrantedByUserId;
+      target.Permission = source.Permission.ToEntity();
+    }
+    #endregion
+
+    #region State
+    public static DT.TaskState ToDto(this DA.TaskState source) {
+      switch (source) {
+        case DA.TaskState.Aborted: return DT.TaskState.Aborted;
+        case DA.TaskState.Calculating: return DT.TaskState.Calculating;
+        case DA.TaskState.Failed: return DT.TaskState.Failed;
+        case DA.TaskState.Finished: return DT.TaskState.Finished;
+        case DA.TaskState.Offline: return DT.TaskState.Offline;
+        case DA.TaskState.Paused: return DT.TaskState.Paused;
+        case DA.TaskState.Transferring: return DT.TaskState.Transferring;
+        case DA.TaskState.Waiting: return DT.TaskState.Waiting;
+        default: return DT.TaskState.Failed;
+      }
+    }
+
+    public static DA.TaskState ToEntity(this DT.TaskState source) {
+      switch (source) {
+        case DT.TaskState.Aborted: return DA.TaskState.Aborted;
+        case DT.TaskState.Calculating: return DA.TaskState.Calculating;
+        case DT.TaskState.Failed: return DA.TaskState.Failed;
+        case DT.TaskState.Finished: return DA.TaskState.Finished;
+        case DT.TaskState.Offline: return DA.TaskState.Offline;
+        case DT.TaskState.Paused: return DA.TaskState.Paused;
+        case DT.TaskState.Transferring: return DA.TaskState.Transferring;
+        case DT.TaskState.Waiting: return DA.TaskState.Waiting;
+        default: return DA.TaskState.Failed;
+      }
+    }
+    #endregion
+
+    #region StateLogs
+    public static DT.StateLog ToDto(this DA.StateLog source) {
+      return new DT.StateLog {
+        Id = source.StateLogId,
+        State = source.State.ToDto(),
+        DateTime = source.DateTime,
+        TaskId = source.TaskId,
+        UserId = source.UserId,
+        SlaveId = source.SlaveId,
+        Exception = source.Exception
+      };
+    }
+
+    public static DA.StateLog ToEntity(this DT.StateLog source) {
+      return new DA.StateLog {
+        StateLogId = source.Id,
+        State = source.State.ToEntity(),
+        DateTime = source.DateTime,
+        TaskId = source.TaskId,
+        UserId = source.UserId,
+        SlaveId = source.SlaveId,
+        Exception = source.Exception
+      };
+    }
+    #endregion
+
+    #region Command
+    public static DT.Command? ToDto(this DA.Command? source) {
+      if (source.HasValue) {
+        switch (source) {
+          case DA.Command.Abort: return DT.Command.Abort;
+          case DA.Command.Pause: return DT.Command.Pause;
+          case DA.Command.Stop: return DT.Command.Stop;
+          default: return DT.Command.Pause;
+        }
+      }
+      return null;
+    }
+
+    public static DA.Command? ToEntity(this DT.Command? source) {
+      if (source.HasValue) {
+        switch (source) {
+          case DT.Command.Abort: return DA.Command.Abort;
+          case DT.Command.Pause: return DA.Command.Pause;
+          case DT.Command.Stop: return DA.Command.Stop;
+          default: return DA.Command.Pause;
+        }
+      }
+      return null;
+    }
+    #endregion
+
+    #region Permission
+    public static DT.Permission ToDto(this DA.Permission source) {
+      switch (source) {
+        case DA.Permission.Full: return DT.Permission.Full;
+        case DA.Permission.NotAllowed: return DT.Permission.NotAllowed;
+        case DA.Permission.Read: return DT.Permission.Read;
+        default: return DT.Permission.NotAllowed;
+      }
+    }
+
+    public static DA.Permission ToEntity(this DT.Permission source) {
+      switch (source) {
+        case DT.Permission.Full: return DA.Permission.Full;
+        case DT.Permission.NotAllowed: return DA.Permission.NotAllowed;
+        case DT.Permission.Read: return DA.Permission.Read;
+        default: return DA.Permission.NotAllowed;
+      }
+    }
+    #endregion
+
+  }
+}
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj	(revision 12584)
@@ -119,4 +119,5 @@
   <ItemGroup>
     <Compile Include="Convert.cs" />
+    <Compile Include="Converter.cs" />
     <Compile Include="DataTransfer\Command.cs" />
     <Compile Include="DataTransfer\UserPriority.cs" />
@@ -145,4 +146,5 @@
     <Compile Include="HiveStatisticsGenerator.cs" />
     <Compile Include="Interfaces\IStatisticsGenerator.cs" />
+    <Compile Include="NewHiveService.cs" />
     <Compile Include="OptimizedHiveDao.cs" />
     <Compile Include="HiveDao.cs" />
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HiveDao.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 12584)
@@ -72,5 +72,4 @@
     public IEnumerable<DT.LightweightTask> GetLightweightTasksWithoutStateLog(Expression<Func<Task, bool>> predicate) {
       List<DT.LightweightTask> tasks = new List<DT.LightweightTask>();
-
       using (var db = CreateContext()) {
         var tasksQuery = db.Tasks.Where(predicate).Select(task => new { task.TaskId, task.ExecutionTimeMs, task.ParentTaskId, task.State, task.Command });
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HiveService.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 12584)
@@ -94,5 +94,4 @@
       authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
       author.AuthorizeForTask(taskId, Permission.Read);
-
       return trans.UseTransaction(() => {
         return DT.Convert.ToDto(optimizedDao.GetTaskById(taskId));
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/NewHiveService.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/NewHiveService.cs	(revision 12584)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.Hive/3.3/NewHiveService.cs	(revision 12584)
@@ -0,0 +1,509 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Services.Access;
+using HeuristicLab.Services.Hive.DataAccess.Interfaces;
+using HeuristicLab.Services.Hive.DataTransfer;
+using HeuristicLab.Services.Hive.ServiceContracts;
+using DA = HeuristicLab.Services.Hive.DataAccess;
+using DT = HeuristicLab.Services.Hive.DataTransfer;
+
+namespace HeuristicLab.Services.Hive {
+  public class NewHiveService : IHiveService {
+    private static readonly DA.TaskState[] CompletedStates = { DA.TaskState.Finished, DA.TaskState.Aborted, DA.TaskState.Failed };
+
+    private IPersistenceManager PersistenceManager {
+      get { return ServiceLocator.Instance.PersistenceManager; }
+    }
+
+    private IUserManager UserManager {
+      get { return ServiceLocator.Instance.UserManager; }
+    }
+
+    private IRoleVerifier RoleVerifier {
+      get { return ServiceLocator.Instance.RoleVerifier; }
+    }
+
+    private IAuthorizationManager AuthorizationManager {
+      get { return ServiceLocator.Instance.AuthorizationManager; }
+    }
+
+    public Guid AddTask(DT.Task task, DT.TaskData taskData, IEnumerable<Guid> resourceIds) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        var stateLogDao = pm.StateLogDao;
+        var newTask = task.ToEntity();
+        newTask.JobData = taskData.ToEntity();
+        newTask.JobData.LastUpdate = DateTime.Now;
+        newTask.AssignedResources.AddRange(resourceIds.Select(
+          x => new DA.AssignedResource {
+            ResourceId = x
+          }));
+        newTask.State = DA.TaskState.Waiting;
+        return pm.UseTransaction(() => {
+          taskDao.Save(newTask);
+          pm.SubmitChanges();
+          stateLogDao.Save(new DA.StateLog {
+            State = DA.TaskState.Waiting,
+            DateTime = DateTime.Now,
+            TaskId = newTask.TaskId,
+            UserId = UserManager.CurrentUserId,
+            SlaveId = null,
+            Exception = null
+          });
+          pm.SubmitChanges();
+          return newTask.TaskId;
+        }, false, true);
+      }
+    }
+
+    public Guid AddChildTask(Guid parentTaskId, DT.Task task, DT.TaskData taskData) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      IEnumerable<Guid> resourceIds;
+      using (var pm = PersistenceManager) {
+        var assignedResourceDao = pm.AssignedResourceDao;
+        resourceIds = pm.UseTransaction(() => {
+          return assignedResourceDao.GetByTaskId(parentTaskId)
+            .Select(x => x.ResourceId)
+            .ToList();
+        });
+      }
+      task.ParentTaskId = parentTaskId;
+      return AddTask(task, taskData, resourceIds);
+    }
+
+    public DT.Task GetTask(Guid taskId) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskId, Permission.Read);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        return pm.UseTransaction(() => {
+          var task = taskDao.GetById(taskId);
+          return task.ToDto();
+        });
+      }
+    }
+
+    public IEnumerable<Task> GetTasks() {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<LightweightTask> GetLightweightTasks(IEnumerable<Guid> taskIds) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<LightweightTask> GetLightweightChildTasks(Guid? parentTaskId, bool recursive, bool includeParent) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<DT.LightweightTask> GetLightweightJobTasks(Guid jobId) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      AuthorizationManager.AuthorizeForJob(jobId, Permission.Read);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        return pm.UseTransaction(() => {
+          return taskDao.GetByJobId(jobId)
+            .Select(x => new DT.LightweightTask {
+              Id = x.TaskId,
+              ExecutionTime = TimeSpan.FromMilliseconds(x.ExecutionTimeMs),
+              ParentTaskId = x.ParentTaskId,
+              StateLog = x.StateLogs.OrderBy(y => y.DateTime)
+                                    .Select(z => z.ToDto())
+                                    .ToList(),
+              State = x.State.ToDto(),
+              Command = x.Command.ToDto(),
+              LastTaskDataUpdate = x.JobData.LastUpdate
+            });
+        }, false, true);
+      }
+    }
+
+    public IEnumerable<DT.LightweightTask> GetLightweightJobTasksWithoutStateLog(Guid jobId) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      AuthorizationManager.AuthorizeForJob(jobId, Permission.Read);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        return pm.UseTransaction(() => {
+          return taskDao.GetByJobId(jobId)
+            .Select(x => new DT.LightweightTask {
+              Id = x.TaskId,
+              ExecutionTime = TimeSpan.FromMilliseconds(x.ExecutionTimeMs),
+              ParentTaskId = x.ParentTaskId,
+              StateLog = new List<DT.StateLog>(),
+              State = x.State.ToDto(),
+              Command = x.Command.ToDto(),
+              LastTaskDataUpdate = x.JobData.LastUpdate
+            });
+        }, false, true);
+      }
+    }
+
+    public DT.TaskData GetTaskData(Guid taskId) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskId, Permission.Read);
+      using (var pm = PersistenceManager) {
+        var taskDataDao = pm.TaskDataDao;
+        return pm.UseTransaction(() => taskDataDao.GetById(taskId).ToDto());
+      }
+    }
+
+    public void UpdateTask(DT.Task taskDto) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskDto.Id, Permission.Full);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        pm.UseTransaction(() => {
+          var task = taskDao.GetById(taskDto.Id);
+          taskDto.CopyToEntity(task);
+          pm.SubmitChanges();
+        });
+      }
+    }
+
+    public void UpdateTaskData(DT.Task taskDto, DT.TaskData taskDataDto) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskDto.Id, Permission.Full);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        var taskDataDao = pm.TaskDataDao;
+        pm.UseTransaction(() => {
+          var task = taskDao.GetById(taskDto.Id);
+          var taskData = taskDataDao.GetById(taskDataDto.TaskId);
+          taskDto.CopyToEntity(task);
+          taskDataDto.CopyToEntity(taskData);
+          taskData.LastUpdate = DateTime.Now;
+          pm.SubmitChanges();
+        });
+      }
+    }
+
+    public void DeleteTask(Guid taskId) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public void DeleteChildTasks(Guid parentTaskId) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public DT.Task UpdateTaskState(Guid taskId, DT.TaskState taskState, Guid? slaveId, Guid? userId, string exception) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskId, Permission.Full);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        var stateLogDao = pm.StateLogDao;
+        return pm.UseTransaction(() => {
+          var task = taskDao.GetById(taskId);
+          UpdateTaskState(pm, task, taskState, slaveId, userId, exception);
+          pm.SubmitChanges();
+          return task.ToDto();
+        });
+      }
+    }
+
+    private void UpdateTaskState(IPersistenceManager pm, DA.Task task, DT.TaskState taskState, Guid? slaveId, Guid? userId, string exception) {
+      var stateLogDao = pm.StateLogDao;
+      var taskStateEntity = taskState.ToEntity();
+      if (task.Command == DA.Command.Pause && task.State == DA.TaskState.Paused
+          || task.Command == DA.Command.Abort && task.State == DA.TaskState.Aborted
+          || task.Command == DA.Command.Stop && task.State == DA.TaskState.Aborted) {
+        task.Command = null;
+      } else if (taskStateEntity == DA.TaskState.Paused) {
+        taskStateEntity = DA.TaskState.Waiting;
+      }
+      stateLogDao.Save(new DA.StateLog {
+        State = taskStateEntity,
+        DateTime = DateTime.Now,
+        TaskId = task.TaskId,
+        UserId = userId,
+        SlaveId = slaveId,
+        Exception = exception
+      });
+      task.State = taskStateEntity;
+    }
+
+    public void StopTask(Guid taskId) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskId, Permission.Full);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        pm.UseTransaction(() => {
+          var task = taskDao.GetById(taskId);
+          if (task.State == DA.TaskState.Calculating || task.State == DA.TaskState.Transferring) {
+            task.Command = DA.Command.Stop;
+          } else if (task.State != DA.TaskState.Aborted
+                     && task.State != DA.TaskState.Finished
+                     && task.State != DA.TaskState.Failed) {
+            UpdateTaskState(pm, task, DT.TaskState.Aborted, null, null, string.Empty);
+          }
+          pm.SubmitChanges();
+        });
+      }
+    }
+
+    public void PauseTask(Guid taskId) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskId, Permission.Full);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        pm.UseTransaction(() => {
+          var task = taskDao.GetById(taskId);
+          if (task.State == DA.TaskState.Calculating || task.State == DA.TaskState.Transferring) {
+            task.Command = DA.Command.Pause;
+          } else {
+            UpdateTaskState(pm, task, DT.TaskState.Paused, null, null, string.Empty);
+          }
+          pm.SubmitChanges();
+        });
+      }
+    }
+
+    public void RestartTask(Guid taskId) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave);
+      AuthorizationManager.AuthorizeForTask(taskId, Permission.Full);
+      using (var pm = PersistenceManager) {
+        var taskDao = pm.TaskDao;
+        pm.UseTransaction(() => {
+          var task = taskDao.GetById(taskId);
+          task.Command = null;
+          UpdateTaskState(pm, task, DT.TaskState.Waiting, null, UserManager.CurrentUserId, string.Empty);
+          pm.SubmitChanges();
+        });
+      }
+    }
+
+
+    public Job GetJob(Guid id) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      AuthorizationManager.AuthorizeForJob(id, Permission.Read);
+      using (var pm = PersistenceManager) {
+        var jobDao = pm.JobDao;
+        var jobPermissionDao = pm.JobPermissionDao;
+        var taskDao = pm.TaskDao;
+        return pm.UseTransaction(() => {
+          var job = jobDao.GetById(id).ToDto();
+          if (job != null) {
+            var statistics = taskDao.GetByJobId(job.Id)
+              .GroupBy(x => x.JobId)
+              .Select(x => new {
+                TotalCount = x.Count(),
+                CalculatingCount = x.Count(y => y.State == DA.TaskState.Calculating),
+                FinishedCount = x.Count(y => CompletedStates.Contains(y.State))
+              }).FirstOrDefault();
+            if (statistics != null) {
+              job.JobCount = statistics.TotalCount;
+              job.CalculatingCount = statistics.CalculatingCount;
+              job.FinishedCount = statistics.FinishedCount;
+            }
+            // TODO
+            //job.Permission = DT.Convert.ToDto(dao.GetPermissionForJob(job.Id, userManager.CurrentUserId));
+            job.OwnerUsername = UserManager.GetUserById(job.OwnerUserId).UserName;
+          }
+          return job;
+        });
+      }
+    }
+
+    public IEnumerable<Job> GetJobs() {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Job> GetAllJobs() {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public Guid AddJob(Job jobDto) {
+      throw new NotImplementedException();
+    }
+
+    public void UpdateJob(Job jobDto) {
+      throw new NotImplementedException();
+    }
+
+    public void DeleteJob(Guid JobId) {
+      throw new NotImplementedException();
+    }
+
+    public void GrantPermission(Guid jobId, Guid grantedUserId, Permission permission) {
+      throw new NotImplementedException();
+    }
+
+    public void RevokePermission(Guid hiveExperimentId, Guid grantedUserId) {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<JobPermission> GetJobPermissions(Guid jobId) {
+      throw new NotImplementedException();
+    }
+
+    public bool IsAllowedPrivileged() {
+      throw new NotImplementedException();
+    }
+
+    public void Hello(Slave slave) {
+      throw new NotImplementedException();
+    }
+
+    public void GoodBye(Guid slaveId) {
+      throw new NotImplementedException();
+    }
+
+    public List<MessageContainer> Heartbeat(Heartbeat heartbeat) {
+      throw new NotImplementedException();
+    }
+
+    public Plugin GetPlugin(Guid pluginId) {
+      throw new NotImplementedException();
+    }
+
+    public Plugin GetPluginByHash(byte[] hash) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public Guid AddPlugin(Plugin plugin, List<PluginData> pluginData) {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Plugin> GetPlugins() {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<PluginData> GetPluginDatas(List<Guid> pluginIds) {
+      throw new NotImplementedException();
+    }
+
+    public void DeletePlugin(Guid pluginId) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public void GrantResourcePermissions(Guid resourceId, Guid[] grantedUserIds) {
+      throw new NotImplementedException();
+    }
+
+    public void RevokeResourcePermissions(Guid resourceId, Guid[] grantedUserIds) {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<ResourcePermission> GetResourcePermissions(Guid resourceId) {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Resource> GetChildResources(Guid resourceId) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public Guid AddSlave(Slave slave) {
+      throw new NotImplementedException();
+    }
+
+    public Guid AddSlaveGroup(SlaveGroup slaveGroup) {
+      throw new NotImplementedException();
+    }
+
+    public Slave GetSlave(Guid slaveId) {
+      throw new NotImplementedException();
+    }
+
+    public SlaveGroup GetSlaveGroup(Guid slaveGroupId) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Slave> GetSlaves() {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<SlaveGroup> GetSlaveGroups() {
+      throw new NotImplementedException();
+    }
+
+    public void UpdateSlave(Slave slave) {
+      throw new NotImplementedException();
+    }
+
+    public void UpdateSlaveGroup(SlaveGroup slaveGroup) {
+      throw new NotImplementedException();
+    }
+
+    public void DeleteSlave(Guid slaveId) {
+      throw new NotImplementedException();
+    }
+
+    public void DeleteSlaveGroup(Guid slaveGroupId) {
+      throw new NotImplementedException();
+    }
+
+    public void AddResourceToGroup(Guid slaveGroupId, Guid resourceId) {
+      throw new NotImplementedException();
+    }
+
+    public void RemoveResourceFromGroup(Guid slaveGroupId, Guid resourceId) {
+      throw new NotImplementedException();
+    }
+
+    public Guid GetResourceId(string resourceName) {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Task> GetTasksByResourceId(Guid resourceId) {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public void TriggerEventManager(bool force) {
+      // private method...
+      throw new NotImplementedException();
+    }
+
+    public int GetNewHeartbeatInterval(Guid slaveId) {
+      throw new NotImplementedException();
+    }
+
+    public Guid AddDowntime(Downtime downtime) {
+      throw new NotImplementedException();
+    }
+
+    public void DeleteDowntime(Guid downtimeId) {
+      throw new NotImplementedException();
+    }
+
+    public void UpdateDowntime(Downtime downtime) {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Downtime> GetDowntimesForResource(Guid resourceId) {
+      throw new NotImplementedException();
+    }
+
+    public string GetUsernameByUserId(Guid userId) {
+      throw new NotImplementedException();
+    }
+
+    public Guid GetUserIdByUsername(string username) {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<UserPriority> GetUserPriorities() {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Statistics> GetStatistics() {
+      // unused
+      throw new NotImplementedException();
+    }
+
+    public IEnumerable<Statistics> GetStatisticsForTimePeriod(DateTime @from, DateTime to) {
+      // unused
+      throw new NotImplementedException();
+    }
+  }
+}
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.OKB/3.3/web.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.OKB/3.3/web.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.OKB/3.3/web.config	(revision 12584)
@@ -53,5 +53,5 @@
           <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider" />
           <serviceCredentials>
-            <serviceCertificate findValue="services.heuristiclab.com" x509FindType="FindBySubjectName" />
+            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
             <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider" />
           </serviceCredentials>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/HeuristicLab.Services.WebApp.Statistics-3.3.csproj
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/HeuristicLab.Services.WebApp.Statistics-3.3.csproj	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/HeuristicLab.Services.WebApp.Statistics-3.3.csproj	(revision 12584)
@@ -150,5 +150,4 @@
     <Compile Include="WebApi\DataTransfer\GroupDetails.cs" />
     <Compile Include="WebApi\DataTransfer\GroupPage.cs" />
-    <Compile Include="WebApi\DataTransfer\Integer.cs" />
     <Compile Include="WebApi\DataTransfer\Job.cs" />
     <Compile Include="WebApi\DataTransfer\JobDetails.cs" />
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/ClientController.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/ClientController.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/ClientController.cs	(revision 12584)
@@ -27,5 +27,4 @@
 using HeuristicLab.Services.Hive.DataAccess;
 using HeuristicLab.Services.Hive.DataAccess.Interfaces;
-using HeuristicLab.Services.WebApp.Status.WebApi;
 using DT = HeuristicLab.Services.WebApp.Statistics.WebApi.DataTransfer;
 
@@ -106,5 +105,6 @@
                                 Name = x.DimJob.UserName
                               })
-                              .Distinct().ToList()
+                              .Distinct()
+                              .ToList()
                   })
                   .FirstOrDefault();
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/JavascriptUtils.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/JavascriptUtils.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/JavascriptUtils.cs	(revision 12584)
@@ -22,5 +22,5 @@
 using System;
 
-namespace HeuristicLab.Services.WebApp.Status.WebApi {
+namespace HeuristicLab.Services.WebApp.Statistics.WebApi {
   public static class JavascriptUtils {
     public static long ToTimestamp(DateTime input) {
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/TaskController.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/TaskController.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/TaskController.cs	(revision 12584)
@@ -22,5 +22,9 @@
 using System;
 using System.Collections.Generic;
+using System.IO;
 using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
 using System.Web.Http;
 using HeuristicLab.Services.Access;
@@ -153,4 +157,24 @@
       }
     }
+
+    public HttpResponseMessage GetTaskDataById(Guid id) {
+      using (var pm = PersistenceManager) {
+        var taskDataDao = pm.TaskDataDao;
+        return pm.UseTransaction(() => {
+          var taskData = taskDataDao.GetById(id);
+          if (taskData == null)
+            return new HttpResponseMessage(HttpStatusCode.NotFound);
+          HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
+          var stream = new MemoryStream(taskData.Data);
+          result.Content = new StreamContent(stream);
+          result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
+          result.Content.Headers.ContentDisposition =
+            new ContentDispositionHeaderValue("attachment") {
+              FileName = string.Format("{0}.hl", id)
+            };
+          return result;
+        });
+      }
+    }
   }
 }
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/clients.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/clients.cshtml	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/clients.cshtml	(revision 12584)
@@ -6,6 +6,5 @@
             <a ng-href="#/statistics/jobs">Jobs</a>
         </li>
-        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator))
-        {
+        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
             <li>
                 <a ng-href="#/statistics/users">Users</a>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetails.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetails.cshtml	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetails.cshtml	(revision 12584)
@@ -236,6 +236,5 @@
                  <div class="panel-body">
                      <table class="table table-condensed table-no-border table-auto-width">
-                         @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator))
-                         {
+                         @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
                              <tr>
                                  <td colspan="2"><span data-fittext="0.99">{{task.Id}}</span></td>
@@ -256,6 +255,5 @@
                              <td class="text-right">{{task.CalculatingTime | toTimespan}}</td>
                          </tr>
-                         @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator))
-                         {
+                         @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
                              <tr>
                                  <td>User:</td>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetailsCtrl.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetailsCtrl.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetailsCtrl.js	(revision 12584)
@@ -100,4 +100,5 @@
                 $scope.curUserId = id;
                 $scope.curUserName = name;
+                $scope.curTaskPage = 1;
                 getClientDetails();
             };
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientTaskDetailsDialogCtrl.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientTaskDetailsDialogCtrl.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientTaskDetailsDialogCtrl.js	(revision 12584)
@@ -5,9 +5,7 @@
             $scope.taskNo = taskNo;
             $scope.task = task;
-
             $scope.close = function () {
                 $modalInstance.dismiss('cancel');
             };
-
         }]
     );
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/details/jobTaskDetailsDialogCtrl.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/details/jobTaskDetailsDialogCtrl.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/details/jobTaskDetailsDialogCtrl.js	(revision 12584)
@@ -5,9 +5,7 @@
             $scope.taskNo = taskNo;
             $scope.task = task;
-
             $scope.close = function () {
                 $modalInstance.dismiss('cancel');
             };
-
         }]
     );
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/jobsCtrl.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/jobsCtrl.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/jobsCtrl.js	(revision 12584)
@@ -42,5 +42,4 @@
             };
 
-
             $scope.updateInterval = $interval(update, $scope.interval);
             var cancelInterval = $scope.$on('$locationChangeSuccess', function () {
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/details/userDetails.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/details/userDetails.cshtml	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/details/userDetails.cshtml	(revision 12584)
@@ -16,9 +16,7 @@
             <a ng-href="#/statistics/groups">Groups</a>
         </li>
-        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
-            <li>
-                <a ng-href="#/statistics/exceptions">Exceptions</a>
-            </li>
-        }
+        <li>
+            <a ng-href="#/statistics/exceptions">Exceptions</a>
+        </li>
     </ul>
 </header>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/details/userDetailsCtrl.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/details/userDetailsCtrl.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/details/userDetailsCtrl.js	(revision 12584)
@@ -7,5 +7,4 @@
             $scope.completedJobCurPage = 1;
             $scope.completedJobPageSize = 20;
-
 
             var getUserDetails = function () {
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/users.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/users.cshtml	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/users/users.cshtml	(revision 12584)
@@ -16,9 +16,7 @@
             <a ng-href="#/statistics/groups">Groups</a>
         </li>
-        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
-            <li>
-                <a ng-href="#/statistics/exceptions">Exceptions</a>
-            </li>
-        }
+        <li>
+            <a ng-href="#/statistics/exceptions">Exceptions</a>
+        </li>
     </ul>
 </header>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Status/3.3/WebApp/history/history.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Status/3.3/WebApp/history/history.cshtml	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Status/3.3/WebApp/history/history.cshtml	(revision 12584)
@@ -15,5 +15,5 @@
             <label for="fromDate">From:&nbsp;</label>
             <div class="input-group">
-                <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="fromDate" is-open="fromIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close" />
+                <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="fromDate" is-open="fromIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close"/>
                 <span class="input-group-btn">
                     <button type="button" class="btn btn-default" ng-click="openFromDateSelection($event)"><i class="glyphicon glyphicon-calendar"></i></button>
@@ -24,8 +24,20 @@
             <label for="fromDate">To:&nbsp;</label>
             <div class="input-group">
-                <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="toDate" is-open="toIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close" />
+                <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="toDate" is-open="toIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close"/>
                 <span class="input-group-btn">
                     <button type="button" class="btn btn-default" ng-click="openToDateSelection($event)"><i class="glyphicon glyphicon-calendar"></i></button>
                 </span>
+            </div>
+        </div>
+        <div class="form-group" style="margin-left: 5px; margin-right: 5px;">
+            <div class="btn-group" dropdown dropdown-append-to-body>
+                <button type="button" class="btn btn-default dropdown-toggle" dropdown-toggle style="width: 130px; text-align: left;">
+                    {{curQuickSelection.name}} <span class="glyphicon glyphicon-chevron-down" style="margin-top: 3px; float:right"></span>
+                </button>
+                <ul class="dropdown-menu" role="menu">
+                    <li ng-repeat="quickSelection in quickSelectionList">
+                        <a ng-click="changeQuickSelection(quickSelection)">{{quickSelection.name}}</a>
+                    </li>
+                </ul>
             </div>
         </div>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Status/3.3/WebApp/history/historyCtrl.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Status/3.3/WebApp/history/historyCtrl.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Status/3.3/WebApp/history/historyCtrl.js	(revision 12584)
@@ -2,6 +2,6 @@
     var module = appStatusPlugin.getAngularModule();
     module.controller('app.status.historyCtrl',
-        ['$scope', '$interval', 'app.status.data.service',
-        function ($scope, $interval, dataService) {
+        ['$scope', '$interval', 'app.status.data.service', '$log',
+        function ($scope, $interval, dataService, $log) {
             $scope.chartOptions = {
                 grid: {
@@ -40,5 +40,4 @@
             };
 
-
             $scope.fromDate = new Date();
             $scope.toDate = new Date();
@@ -47,4 +46,37 @@
             $scope.toIsOpen = false;
 
+            $scope.quickSelectionList = [
+                { id: 0, name: 'Custom' },
+                { id: 1, name: 'Today' },
+                { id: 2, name: 'Yesterday' },
+                { id: 3, name: 'Last 7 Days' },
+                { id: 4, name: 'Last 30 Days' }
+            ];
+            $scope.changeQuickSelection = function (quickSelection) {
+                var today = new Date();
+                var oneDayInMs = 24 * 60 * 60 * 1000;
+                switch (quickSelection.id) {
+                    case 1:
+                        $scope.fromDate = new Date(today.valueOf());
+                        $scope.toDate = new Date(today.valueOf());
+                        break;
+                    case 2:
+                        $scope.fromDate = new Date(today.valueOf() - oneDayInMs);
+                        $scope.toDate = new Date(today.valueOf() - oneDayInMs);
+                        break;
+                    case 3:
+                        $scope.fromDate = new Date(today.valueOf() - (7 * oneDayInMs));
+                        $scope.toDate = new Date(today.valueOf());
+                        break;
+                    case 4:
+                        $scope.fromDate = new Date(today.valueOf() - (30 * oneDayInMs));
+                        $scope.toDate = new Date(today.valueOf());
+                        break;
+                }
+                $scope.curQuickSelection = quickSelection;
+            };
+            // set default 'today'
+            $scope.changeQuickSelection($scope.quickSelectionList[1]);
+
             $scope.openFromDateSelection = function ($event) {
                 $event.preventDefault();
@@ -52,4 +84,5 @@
                 $scope.toIsOpen = false;
                 $scope.fromIsOpen = true;
+                $scope.curQuickSelection = $scope.quickSelectionList[0];
             };
 
@@ -59,4 +92,5 @@
                 $scope.fromIsOpen = false;
                 $scope.toIsOpen = true;
+                $scope.curQuickSelection = $scope.quickSelectionList[0];
             };
 
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/Configs/BundleConfig.cs
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/Configs/BundleConfig.cs	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/Configs/BundleConfig.cs	(revision 12584)
@@ -59,4 +59,6 @@
         // bootstrap
         "~/WebApp/libs/bootstrap/js/bootstrap.min.js",
+        // cryptojs
+        "~/WebApp/libs/cryptojs/aes.js",
         // angular js
         "~/WebApp/libs/angularjs/angular.min.js",
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj	(revision 12584)
@@ -146,4 +146,5 @@
     <Content Include="WebApp\libs\angularjs\angular-tablesort\tablesort.css" />
     <Content Include="WebApp\libs\angularjs\fittext\ng-FitText.js" />
+    <Content Include="WebApp\libs\cryptojs\aes.js" />
     <Content Include="WebApp\main.js" />
     <Content Include="WebApp\helper.js" />
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/Web.config
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/Web.config	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/Web.config	(revision 12584)
@@ -6,6 +6,6 @@
     <remove name="HeuristicLab.Authentication" />
     <remove name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" />
-    <add name="HeuristicLab.Authentication" connectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication" />
-    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True;" providerName="System.Data.SqlClient" />
+    <add name="HeuristicLab.Authentication" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication" />
+    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True;" providerName="System.Data.SqlClient" />
   </connectionStrings>
   <appSettings>
@@ -31,5 +31,5 @@
       </providers>
     </roleManager>
-    <compilation debug="true" targetFramework="4.5" />
+    <compilation debug="false" targetFramework="4.5" />
     <httpRuntime targetFramework="4.5" />
   </system.web>
@@ -59,5 +59,5 @@
       <dependentAssembly>
         <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
-        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
       </dependentAssembly>
       <dependentAssembly>
@@ -67,5 +67,5 @@
       <dependentAssembly>
         <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
+        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
       </dependentAssembly>
       <dependentAssembly>
@@ -81,4 +81,8 @@
         <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/helper.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/helper.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/helper.js	(revision 12584)
@@ -51,5 +51,4 @@
 };
 
-
 var CSharpDateToString = function (datetime) {
     var date = new Date(Date.parse(datetime));
@@ -63,2 +62,5 @@
 };
 
+function decryptString(s) {
+    return CryptoJS.AES.decrypt(s, "heuristiclab").toString(CryptoJS.enc.Utf8);
+}
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/about.cshtml
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/about.cshtml	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/about.cshtml	(revision 12584)
@@ -27,5 +27,6 @@
                 </div>
                 <div class="panel-body">
-                    <p><strong>Support and Inquiries</strong>: ​<a href="mailto:support@heuristiclab.com">support@heuristiclab.com</a></p>
+                    <p><strong>Support</strong>: <a href="App/RedirectUrl?url=http://groups.google.com/group/heuristiclab">HeuristicLab Google Group</a></p>
+                    <p><strong>Inquiries</strong>: ​<a class="cursor-pointer" ng-click="mailToSupport()">support(at)heuristiclab.com</a></p>
                     <p><strong>Heuristic and Evolutionary Algorithms Laboratory (HEAL)</strong>: <a href="App/RedirectUrl?url=http://heal.heuristiclab.com">​http://heal.heuristiclab.com</a></p>
                     <p><strong>HeuristicLab development site</strong>: <a href="App/RedirectUrl?url=http://dev.heuristiclab.com">http://dev.heuristiclab.com</a></p>
@@ -35,5 +36,5 @@
                         <span class="glyphicon glyphicon-phone-alt"></span> +43 50804 22030<br />
                         <span class="glyphicon glyphicon-print"></span> +43 50804 21599<br />
-                        <span class="glyphicon glyphicon-envelope"></span> <a href="mailto:stefan.wagner@heuristiclab.com">stefan.wagner@heuristiclab.com</a><br />
+                        <span class="glyphicon glyphicon-envelope"></span> <a class="cursor-pointer" ng-click="mailToStefanWagner()">stefan.wagner(at)heuristiclab.com</a><br />
                     </p>
                 </div>
Index: /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/aboutCtrl.js
===================================================================
--- /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/aboutCtrl.js	(revision 12583)
+++ /branches/HiveStatistics/sources/HeuristicLab.Services.WebApp/3.3/WebApp/plugins/about/aboutCtrl.js	(revision 12584)
@@ -1,4 +1,12 @@
 ﻿(function () {
     var module = appAboutPlugin.getAngularModule();
-    module.controller('app.about.ctrl', ['$scope', function ($scope) { }]);
+    module.controller('app.about.ctrl', ['$scope', '$log', function($scope, $log) {
+        $scope.mailToSupport = function () {
+            location.href = decryptString('U2FsdGVkX1/pCOITUzzsN36hx4sHh11FeVXkVyQ5b2KeZebFQ3KaNN8G9bKL3lU9');
+        };
+
+        $scope.mailToStefanWagner = function () {
+            location.href = decryptString('U2FsdGVkX1/Lzu8UFltiBl6VmBf9E0lmGna0+7o7cavCPwiCytBpSLsJoyhO9tl5hHCvJPVgsSndWdmGEuWrXw==');
+        };
+    }]);
 })();
