added the code checking whether the AppServer has been setup when start it

--- SocketBase/AppServerBase.cs
+++ SocketBase/AppServerBase.cs
@@ -38,6 +38,11 @@
         private string m_Name;

         /// <summary>
+        /// Indicate this server instance whether has been setup
+        /// </summary>
+        private bool m_Initialized = false;
+
+        /// <summary>
         /// Gets the certificate of current server.
         /// </summary>
         public X509Certificate Certificate { get; private set; }
@@ -429,7 +434,11 @@
             if (!Setup(rootConfig, config))
                 return false;

-            return SetupFinal();
+            if(!SetupFinal())
+                return false;
+
+            m_Initialized = true;
+            return true;
         }

         private T GetProviderInstance<T>(object[] providers)
@@ -486,7 +495,11 @@
             if (!Setup(rootConfig, config))
                 return false;

-            return SetupFinal();
+            if (!SetupFinal())
+                return false;
+
+            m_Initialized = true;
+            return true;
         }

         /// <summary>
@@ -840,6 +853,9 @@
         /// </returns>
         public virtual bool Start()
         {
+            if (!m_Initialized)
+                throw new Exception("You cannot start a AppServer which has not been setup yet.");
+
             if (this.IsRunning)
             {
                 if (Logger.IsErrorEnabled)


minor prep for localization

minor prep for localization

--- Sounds/MainForm.Designer.cs
+++ Sounds/MainForm.Designer.cs
@@ -598,8 +598,8 @@
             this.volumeStatusButton.Image = global::Sounds.Properties.Resources.Volume;
             this.volumeStatusButton.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.volumeStatusButton.Name = "volumeStatusButton";
-            this.volumeStatusButton.Size = new System.Drawing.Size(58, 20);
-            this.volumeStatusButton.Text = "50%";
+            this.volumeStatusButton.Size = new System.Drawing.Size(76, 20);
+            this.volumeStatusButton.Text = "Volume";
             this.volumeStatusButton.Visible = false;
             //
             // openPlaylistDialog
@@ -658,7 +658,7 @@
             this.addFilesToolStripButton});
             this.toolStrip1.Location = new System.Drawing.Point(3, 24);
             this.toolStrip1.Name = "toolStrip1";
-            this.toolStrip1.Size = new System.Drawing.Size(255, 25);
+            this.toolStrip1.Size = new System.Drawing.Size(273, 25);
             this.toolStrip1.TabIndex = 1;
             //
             // playToolStripButton
@@ -716,8 +716,8 @@
             this.volumeButton.Image = global::Sounds.Properties.Resources.Volume;
             this.volumeButton.ImageTransparentColor = System.Drawing.Color.Magenta;
             this.volumeButton.Name = "volumeButton";
-            this.volumeButton.Size = new System.Drawing.Size(58, 22);
-            this.volumeButton.Text = "50%";
+            this.volumeButton.Size = new System.Drawing.Size(76, 22);
+            this.volumeButton.Text = "Volume";
             //
             // toolStripSeparator8
             //


Fix null reference

Fix null reference

--- src/DotNetCore.CAP/CAP.Options.cs
+++ src/DotNetCore.CAP/CAP.Options.cs
@@ -5,6 +5,7 @@
 using System.Collections.Generic;
 using System.Reflection;
 using DotNetCore.CAP.Models;
+// ReSharper disable InconsistentNaming

 namespace DotNetCore.CAP
 {
@@ -41,7 +42,7 @@
             FailedRetryCount = DefaultFailedRetryCount;
             Extensions = new List<ICapOptionsExtension>();
             Version = DefaultVersion;
-            DefaultGroup = "cap.queue." + Assembly.GetEntryAssembly().GetName().Name.ToLower();
+            DefaultGroup = "cap.queue." + Assembly.GetEntryAssembly()?.GetName().Name.ToLower();
         }

         internal IList<ICapOptionsExtension> Extensions { get; }


Delete Resources.Designer.cs

Delete Resources.Designer.cs

--- wpFila/Properties/Resources.Designer.cs
+++ wpFila/Properties/Resources.Designer.cs
@@ -1,63 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.33440
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace wpFila.Properties {
-    using System;
-
-
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources {
-
-        private static global::System.Resources.ResourceManager resourceMan;
-
-        private static global::System.Globalization.CultureInfo resourceCulture;
-
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources() {
-        }
-
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("wpFila.Properties.Resources", typeof(Resources).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-    }
-}


Move TimeKey seconds setting into property.

--- kerbcam2/TimeKey.cs
+++ kerbcam2/TimeKey.cs
@@ -40,11 +40,10 @@
         /// </summary>
         public float Seconds {
             get { return seconds; }
-        }
-
-        public void SetSeconds(float seconds) {
-            this.seconds = seconds;
-            timeline.ResortKeyOrder();
+            set {
+                this.seconds = value;
+                timeline.ResortKeyOrder();
+            }
         }

         internal void RawSetSeconds(float seconds) {


update source

update source

--- EventHook/Hooks/ShellHook.cs
+++ EventHook/Hooks/ShellHook.cs
@@ -6,6 +6,7 @@
 {
     internal delegate void GeneralShellHookEventHandler(ShellHook sender, IntPtr hWnd);

+    //https://github.com/lemkepf/ClipHub/blob/master/ClipHub/ClipHub/Code/Helpers/ShellHook.cs
     internal sealed class ShellHook : NativeWindow
     {
         private readonly uint _wmShellHook;
@@ -136,4 +137,4 @@

         #endregion
     }
-}+}


Added back support for overlapping prims

Forgot this detail!

--- Source/DataReader/RDBMap.cs
+++ Source/DataReader/RDBMap.cs
@@ -222,6 +222,49 @@

 				Thread.CurrentThread.Priority = oldPriority;
 			});
+
+			LOG.Debug("[RDB_MAP] Connecting adjacent regions.");
+			foreach (var region in region_list.Values) {
+				if (region.HasKnownCoordinates()) {
+					var adjacentRegions = new List<Region>();
+
+					Region north, northeast, east, southeast, south, southwest, west, northwest;
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2( 0,  1), out north)) {
+						adjacentRegions.Add(north);
+					}
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2(-1,  1), out northeast)) {
+						adjacentRegions.Add(northeast);
+					}
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2(-1,  0), out east)) {
+						adjacentRegions.Add(east);
+					}
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2(-1, -1), out southeast)) {
+						adjacentRegions.Add(southeast);
+					}
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2( 0, -1), out south)) {
+						adjacentRegions.Add(south);
+					}
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2( 1, -1), out southwest)) {
+						adjacentRegions.Add(southwest);
+					}
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2( 1,  0), out west)) {
+						adjacentRegions.Add(west);
+					}
+
+					if (COORD_MAP.TryGetValue((Vector2)region.Location + new Vector2( 1,  1), out northwest)) {
+						adjacentRegions.Add(northwest);
+					}
+
+					region._adjacentRegions = adjacentRegions;
+				}
+			}
 		}

 		public int GetRegionCount() {


1. Split IPublishExchangeDeclareStrategy in two..   * PublishExchangeDeclareStrategy was referring directly to the container. Moved to constructor   * Split interface in two: An advanced and a convention based one.

--- Source/EasyNetQ/Rpc/IRpc.cs
+++ Source/EasyNetQ/Rpc/IRpc.cs
@@ -1,5 +1,7 @@
 using System;
 using System.Threading.Tasks;
+using EasyNetQ.Consumer;
+using EasyNetQ.Topology;

 namespace EasyNetQ.Rpc
 {
@@ -29,4 +31,22 @@
             where TRequest : class
             where TResponse : class;
     }
+
+    public interface IAdvancedRpc
+    {
+        Task<AdvancedRabbitMessage> Request(IExchange exchange,
+                                            string returnQueueName,
+                                            string routingKey,
+                                            bool mandatory,
+                                            bool immediate,
+                                            AdvancedRabbitMessage msg);
+
+        IDisposable Respond(IQueue queue, Func<AdvancedRabbitMessage, AdvancedRabbitMessage> handleRequest, Action<IConsumerConfiguration> configure);
+    }
+
+    public class AdvancedRabbitMessage
+    {
+        public byte[] MessageBody { get; set; }
+        public MessageProperties MessageProperties { get; set; }
+    }
 }


Re-add ProcessControls() call to TabView

Since 1.6, `TabView`s were not taking any action on indicated keybind presses. It would appear that a call to `ProcessControls()` was removed.

--- Source/PauseMenu/TabView.cs
+++ Source/PauseMenu/TabView.cs
@@ -216,6 +216,8 @@
             NativeFunction.CallByName<uint>("HIDE_HUD_AND_RADAR_THIS_FRAME");
             //NativeFunction.CallByHash<uint>(0xaae7ce1d63167423); // _SHOW_CURSOR_THIS_FRAME

+            ProcessControls();
+
             var res = UIMenu.GetScreenResolutionMantainRatio();
             var safe = new Point(300, 180);


Added null check in SitemapMiddleware. Fixes #981

--- core/Piranha.AspNetCore/SitemapMiddleware.cs
+++ core/Piranha.AspNetCore/SitemapMiddleware.cs
@@ -41,7 +41,9 @@
         /// <returns>An async task</returns>
         public override async Task Invoke(HttpContext context, IApi api, IApplicationService service)
         {
-            if (_config.UseSitemapRouting && !IsHandled(context) && !context.Request.Path.Value.StartsWith("/manager/assets/"))
+            var useSitemapRouting = _config != null ? _config.UseSitemapRouting : true;
+
+            if (useSitemapRouting && !IsHandled(context) && !context.Request.Path.Value.StartsWith("/manager/assets/"))
             {
                 var url = context.Request.Path.HasValue ? context.Request.Path.Value : "";
                 var host = context.Request.Host.Host;


Fix cross-dependency with ObjectFactory unit tests bugid: 386

--- cslatest/Csla.Test/ObjectFactory/ObjectFactoryTests.cs
+++ cslatest/Csla.Test/ObjectFactory/ObjectFactoryTests.cs
@@ -23,7 +23,7 @@
     public void Create()
     {
       Csla.ApplicationContext.User = new Csla.Security.UnauthenticatedPrincipal();
-      ConfigurationManager.AppSettings["CslaDataPortalProxy"] = "Csla.Testing.Business.TestProxies.AppDomainProxy, Csla.Testing.Business";
+      Csla.ApplicationContext.DataPortalProxy = "Csla.Testing.Business.TestProxies.AppDomainProxy, Csla.Testing.Business";
       try
       {
         Csla.Server.FactoryDataPortal.FactoryLoader =
@@ -36,7 +36,7 @@
       }
       finally
       {
-        ConfigurationManager.AppSettings["CslaDataPortalProxy"] = null;
+        Csla.ApplicationContext.DataPortalProxy = "Local";
         Csla.ApplicationContext.User = new System.Security.Principal.GenericPrincipal(
           new System.Security.Principal.GenericIdentity(string.Empty), new string[] { });
       }
@@ -45,7 +45,7 @@
     [TestMethod]
     public void CreateLocal()
     {
-      ConfigurationManager.AppSettings["CslaDataPortalProxy"] = "Csla.Testing.Business.TestProxies.AppDomainProxy, Csla.Testing.Business";
+      Csla.ApplicationContext.DataPortalProxy = "Csla.Testing.Business.TestProxies.AppDomainProxy, Csla.Testing.Business";
       try
       {
         Csla.Server.FactoryDataPortal.FactoryLoader =
@@ -58,7 +58,8 @@
       }
       finally
       {
-        ConfigurationManager.AppSettings["CslaDataPortalProxy"] = null;
+        Csla.ApplicationContext.DataPortalProxy = "Local";
+        Csla.DataPortal.ResetProxyType();
       }
     }

@@ -66,7 +67,7 @@
     public void CreateMissing()
     {
       Csla.ApplicationContext.User = new Csla.Security.UnauthenticatedPrincipal();
-      ConfigurationManager.AppSettings["CslaDataPortalProxy"] = "Csla.Testing.Business.TestProxies.AppDomainProxy, Csla.Testing.Business";
+      Csla.ApplicationContext.DataPortalProxy = "Csla.Testing.Business.TestProxies.AppDomainProxy, Csla.Testing.Business";
       try
       {
         Csla.Server.FactoryDataPortal.FactoryLoader =
@@ -79,7 +80,8 @@
       }
       finally
       {
-        ConfigurationManager.AppSettings["CslaDataPortalProxy"] = null;
+        Csla.ApplicationContext.DataPortalProxy = "Local";
+        Csla.DataPortal.ResetProxyType();
         Csla.ApplicationContext.User = new System.Security.Principal.GenericPrincipal(
           new System.Security.Principal.GenericIdentity(string.Empty), new string[] { });
       }
@@ -124,15 +126,25 @@
     [TestMethod]
     public void UpdateEnterpriseServices()
     {
-      Csla.Server.FactoryDataPortal.FactoryLoader =
-        new ObjectFactoryLoader(2);
-      var root = new Root();
-      root.Data = "abc";
-      root = Csla.DataPortal.Update<Root>(root);
-      Assert.AreEqual(TransactionalTypes.EnterpriseServices, root.TransactionalType, "Transactional type should match");
-      Assert.AreEqual("Update", root.Data, "Data should match");
-      Assert.IsFalse(root.IsNew, "Should not be new");
-      Assert.IsFalse(root.IsDirty, "Should not be dirty");
+      try
+      {
+        Csla.Server.FactoryDataPortal.FactoryLoader =
+          new ObjectFactoryLoader(2);
+        var root = new Root();
+        root.Data = "abc";
+        root = Csla.DataPortal.Update<Root>(root);
+        Assert.AreEqual(TransactionalTypes.EnterpriseServices, root.TransactionalType, "Transactional type should match");
+        Assert.AreEqual("Update", root.Data, "Data should match");
+        Assert.IsFalse(root.IsNew, "Should not be new");
+        Assert.IsFalse(root.IsDirty, "Should not be dirty");
+      }
+      catch (Csla.DataPortalException ex)
+      {
+        if (ex.InnerException.GetType().FullName == "System.EnterpriseServices.RegistrationException")
+          Assert.Ignore("COM+ not accessible");
+        else
+          throw;
+      }
     }

     [TestMethod]


FIX: ToString_returns_tag_hierarchy failed under .NET Core 3.1 due to different precision on floating types

Also fixed spelling error in test name

--- tests/NbtDocumentTests.cs
+++ tests/NbtDocumentTests.cs
@@ -801,7 +801,7 @@
     }

     [Test]
-    public void ToString_returns_tag_hieararchy()
+    public void ToString_returns_tag_hierarchy()
     {
       // arrange
       NbtDocument target;
@@ -812,35 +812,47 @@
       target = new NbtDocument(this.CreateComplexData());

       sb = new StringBuilder();
-      sb.AppendLine("compound:Level");
-      sb.AppendLine("  long:longTest [9223372036854775807]");
-      sb.AppendLine("  short:shortTest [32767]");
-      sb.AppendLine("  string:stringTest [HELLO WORLD THIS IS A TEST STRING ÅÄÖ!]");
-      sb.AppendLine("  float:floatTest [0.4982315]");
-      sb.AppendLine("  int:intTest [2147483647]");
-      sb.AppendLine("  compound:nested compound test");
-      sb.AppendLine("    compound:ham");
-      sb.AppendLine("      string:name [Hampus]");
-      sb.AppendLine("      float:value [0.75]");
-      sb.AppendLine("    compound:egg");
-      sb.AppendLine("      string:name [Eggbert]");
-      sb.AppendLine("      float:value [0.5]");
-      sb.AppendLine("  list:listTest (long)");
-      sb.AppendLine("    long#0 [11]");
-      sb.AppendLine("    long#1 [12]");
-      sb.AppendLine("    long#2 [13]");
-      sb.AppendLine("    long#3 [14]");
-      sb.AppendLine("    long#4 [15]");
-      sb.AppendLine("  list:listTest (compound)");
-      sb.AppendLine("    compound#0");
-      sb.AppendLine("      string:name [Compound tag #0]");
-      sb.AppendLine("      long:created-on [1264099775885]");
-      sb.AppendLine("    compound#1");
-      sb.AppendLine("      string:name [Compound tag #1]");
-      sb.AppendLine("      long:created-on [1264099775885]");
-      sb.AppendLine("  byte:byteTest [127]");
-      sb.AppendLine("  bytearray:byteArrayTest (the first 1000 values of (n*n*255+n*7)%100, starting with n=0 (0, 62, 34, 16, 8, ...)) [00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30]");
-      sb.AppendLine("  double:doubleTest [0.493128713218231]");
+      sb.AppendLine("compound:Level")
+        .AppendLine("  long:longTest [9223372036854775807]")
+        .AppendLine("  short:shortTest [32767]")
+        .AppendLine("  string:stringTest [HELLO WORLD THIS IS A TEST STRING ÅÄÖ!]")
+        .Append("  float:floatTest [");
+#if NETCOREAPP3_1
+      sb.Append("0.49823147");
+#else
+      sb.Append("0.4982315");
+#endif
+      sb.AppendLine("]")
+        .AppendLine("  int:intTest [2147483647]")
+        .AppendLine("  compound:nested compound test")
+        .AppendLine("    compound:ham")
+        .AppendLine("      string:name [Hampus]")
+        .AppendLine("      float:value [0.75]")
+        .AppendLine("    compound:egg")
+        .AppendLine("      string:name [Eggbert]")
+        .AppendLine("      float:value [0.5]")
+        .AppendLine("  list:listTest (long)")
+        .AppendLine("    long#0 [11]")
+        .AppendLine("    long#1 [12]")
+        .AppendLine("    long#2 [13]")
+        .AppendLine("    long#3 [14]")
+        .AppendLine("    long#4 [15]")
+        .AppendLine("  list:listTest (compound)")
+        .AppendLine("    compound#0")
+        .AppendLine("      string:name [Compound tag #0]")
+        .AppendLine("      long:created-on [1264099775885]")
+        .AppendLine("    compound#1")
+        .AppendLine("      string:name [Compound tag #1]")
+        .AppendLine("      long:created-on [1264099775885]")
+        .AppendLine("  byte:byteTest [127]")
+        .AppendLine("  bytearray:byteArrayTest (the first 1000 values of (n*n*255+n*7)%100, starting with n=0 (0, 62, 34, 16, 8, ...)) [00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30, 00, 3E, 22, 10, 08, 0A, 16, 2C, 4C, 12, 46, 20, 04, 56, 4E, 50, 5C, 0E, 2E, 58, 28, 02, 4A, 38, 30, 32, 3E, 54, 10, 3A, 0A, 48, 2C, 1A, 12, 14, 20, 36, 56, 1C, 50, 2A, 0E, 60, 58, 5A, 02, 18, 38, 62, 32, 0C, 54, 42, 3A, 3C, 48, 5E, 1A, 44, 14, 52, 36, 24, 1C, 1E, 2A, 40, 60, 26, 5A, 34, 18, 06, 62, 00, 0C, 22, 42, 08, 3C, 16, 5E, 4C, 44, 46, 52, 04, 24, 4E, 1E, 5C, 40, 2E, 26, 28, 34, 4A, 06, 30]")
+        .Append("  double:doubleTest [");
+#if NETCOREAPP3_1
+      sb.Append("0.4931287132182315");
+#else
+      sb.Append("0.493128713218231");
+#endif
+      sb.AppendLine("]");

       expected = sb.ToString();


Fix test namespace

Fix test namespace

--- tests/Pfim.Tests/Tests.cs
+++ tests/Pfim.Tests/Tests.cs
@@ -5,7 +5,7 @@
 using System.IO;
 using System.Linq;

-namespace Farmhash.Sharp.Tests
+namespace Pfim.Tests
 {
     public class HashTests
     {
@@ -112,7 +112,7 @@
                 expected[i + 2] = 0;
             }

-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "true-24.tga"));
+            var image = Pfim.FromFile(Path.Combine("data", "true-24.tga"));
             Assert.Equal(image.Data, expected);
         }

@@ -126,7 +126,7 @@
                 expected[i + 3] = 255;
             }

-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "true-32.tga"));
+            var image = Pfim.FromFile(Path.Combine("data", "true-32.tga"));
             Assert.Equal(image.Data, expected);
         }

@@ -183,7 +183,7 @@
                 data[i+3] = 255;
             }

-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "true-32-rle.tga"));
+            var image = Pfim.FromFile(Path.Combine("data", "true-32-rle.tga"));

             Assert.Equal(image.Data, data);
         }
@@ -213,14 +213,14 @@
                 data[i+2] = 255;
             }

-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "true-24-rle.tga"));
+            var image = Pfim.FromFile(Path.Combine("data", "true-24-rle.tga"));

             Assert.Equal(image.Data, data);
         }

         [Fact]
         public void parseTrueTarga32MixedEncoding() {
-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "true-32-mixed.tga"));
+            var image = Pfim.FromFile(Path.Combine("data", "true-32-mixed.tga"));
             byte[] data = new byte[256];
             for (int i = 0; i < 16 * 4; i+=4) {
                 data[i] = 0;
@@ -267,7 +267,7 @@

         [Fact]
         public void parseLarge32TargetImage() {
-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "true-32-rle-large.tga"));
+            var image = Pfim.FromFile(Path.Combine("data", "true-32-rle-large.tga"));
             byte[] data = new byte[1200 * 1200 * 4];
             for (int i = 0; i < data.Length; i += 4) {
                 data[i] = 0;
@@ -280,7 +280,7 @@

         [Fact]
         public void parseTargaTopLeft() {
-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "rgb24_top_left.tga"));
+            var image = Pfim.FromFile(Path.Combine("data", "rgb24_top_left.tga"));
             for (int i = 0; i < image.Data.Length; i += 3) {
                 if (!((image.Data[i] == 0 && image.Data[i + 1] == 255 && image.Data[i + 2] == 0) ||
                     (image.Data[i] == 12 && image.Data[i + 1] == 0 && image.Data[i + 2] == 255) ||
@@ -293,7 +293,7 @@

         [Fact]
         public void parse32BitUncompressedDds() {
-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "32-bit-uncompressed.dds"));
+            var image = Pfim.FromFile(Path.Combine("data", "32-bit-uncompressed.dds"));
             byte[] data = new byte[64 * 64 * 4];
             for (int i = 0; i < data.Length; i += 4) {
                 data[i] = 0;
@@ -310,7 +310,7 @@

         [Fact]
         public void parseSimpleDxt1() {
-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "dxt1-simple.dds"));
+            var image = Pfim.FromFile(Path.Combine("data", "dxt1-simple.dds"));
             byte[] data = new byte[64 * 64 * 3];
             for (int i = 0; i < data.Length; i += 3) {
                 data[i] = 0;
@@ -326,7 +326,7 @@

         [Fact]
         public void parseSimpleDxt3() {
-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "dxt3-simple.dds"));
+            var image = Pfim.FromFile(Path.Combine("data", "dxt3-simple.dds"));
             byte[] data = new byte[64 * 64 * 4];
             for (int i = 0; i < data.Length; i += 4) {
                 data[i] = 0;
@@ -343,7 +343,7 @@

         [Fact]
         public void parseSimpleDxt5() {
-            var image = Pfim.Pfim.FromFile(Path.Combine("data", "dxt5-simple.dds"));
+            var image = Pfim.FromFile(Path.Combine("data", "dxt5-simple.dds"));
             byte[] data = new byte[64 * 64 * 4];
             for (int i = 0; i < data.Length; i += 4) {
                 data[i] = 0;


add online users + fix usernames

add online users + fix usernames

--- SparklrLib/SparklrClient.cs
+++ SparklrLib/SparklrClient.cs
@@ -418,17 +418,58 @@
         /// <param name="Callback">The callback.</param>
         public void GetUsernames(int[] ids, Action<JSONRequestEventArgs<Objects.Responses.Work.Username[]>> Callback)
         {
-            requestJsonObject<Objects.Responses.Work.Username[]>("/work/username/" + String.Join(",", (string[])(from id in ids select id.ToString()).ToArray()), (args) =>
-            {
-                if (args.IsSuccessful)
-                {
-                    foreach (Objects.Responses.Work.Username un in args.Object)
-                    {
-                        Usernames[un.id] = un.username;
-                    }
-                }
-                Callback(args);
-            });
+            List<int> idsToRequest = new List<int>();
+            foreach (int id in ids)
+            {
+                if (!Usernames.ContainsKey(id))
+                {
+                    idsToRequest.Add(id);
+                }
+            }
+            if (idsToRequest.Count > 0)
+            {
+                requestJsonObject<Objects.Responses.Work.Username[]>("/work/username/" + String.Join(",", (string[])(from id in ids select id.ToString()).ToArray()), (args) =>
+                {
+                    if (args.IsSuccessful)
+                    {
+                        foreach (Objects.Responses.Work.Username un in args.Object)
+                        {
+                            Usernames[un.id] = un.username;
+                        }
+                        List<Objects.Responses.Work.Username> usrnms = new List<Objects.Responses.Work.Username>();
+                        foreach (int id in ids)
+                        {
+                            usrnms.Add(new Objects.Responses.Work.Username() { id = id, username = Usernames[id] });
+                        }
+                        Callback(new JSONRequestEventArgs<Objects.Responses.Work.Username[]>()
+                        {
+                            Error = null,
+                            IsSuccessful = true,
+                            Object = usrnms.ToArray()
+                        });
+                    }
+                });
+            }
+            else
+            {
+                List<Objects.Responses.Work.Username> usrnms = new List<Objects.Responses.Work.Username>();
+                foreach (int id in ids)
+                {
+                    usrnms.Add(new Objects.Responses.Work.Username() { id = id, username = Usernames[id] });
+                }
+                Callback(new JSONRequestEventArgs<Objects.Responses.Work.Username[]>()
+                {
+                    Error = null,
+                    IsSuccessful = true,
+                    Object = usrnms.ToArray()
+                });
+            }
+
+        }
+
+        public void GetOnlineFriends(Action<JSONRequestEventArgs<Objects.Responses.Work.OnlineFriends[]>> Callback)
+        {
+            requestJsonObject<Objects.Responses.Work.OnlineFriends[]>("/work/onlinefriends", Callback);
         }
     }
 }


Docker build didn't handle expression body for property

--- Stratis.Bitcoin/FullNode.cs
+++ Stratis.Bitcoin/FullNode.cs
@@ -36,8 +36,8 @@

         public IApplicationLifetime ApplicationLifetime
         {
-            get => this.applicationLifetime;
-            private set => this.applicationLifetime = (ApplicationLifetime) value;
+            get { return this.applicationLifetime; }
+            private set { this.applicationLifetime = (ApplicationLifetime) value; }
         } // this will replace the cancellation token on the full node

         public IFullNodeServiceProvider Services { get; set; }


Updated test

Updated test

--- tests/cs/return/Return.cs
+++ tests/cs/return/Return.cs
@@ -20,6 +20,6 @@
     {
         ReturnTest.ReturnVoid();
         System.Console.WriteLine(ReturnValue(4));
-        // System.Console.WriteLine(ReturnTest.ReturnGeneric<int>(2));
+        System.Console.WriteLine(ReturnTest.ReturnGeneric<int>(2));
     }
 }


C#: Remove overlapping declaration of System.Web.HttpUtility

--- csharp/ql/test/resources/stubs/System.Web.cs
+++ csharp/ql/test/resources/stubs/System.Web.cs
@@ -167,14 +167,6 @@
         public HttpResponse Response => null;
         public SessionState.HttpSessionState Session => null;
         public HttpServerUtility Server => null;
-    }
-
-    public class HttpUtility
-    {
-        public static string HtmlEncode(object value) => null;
-        public static string HtmlEncode(string value) => null;
-        public static string UrlEncode(string value) => null;
-        public static string HtmlAttributeEncode(string value) => null;
     }

     public class HttpCookie


Update HttpTransportCF.cs

Update HttpTransportCF.cs

--- src/Hprose.RPC/HttpTransportCF.cs
+++ src/Hprose.RPC/HttpTransportCF.cs
@@ -8,7 +8,7 @@
 |                                                          |
 |  HttpTransport class for .NET CF.                        |
 |                                                          |
-|  LastModified: Feb 21, 2019                              |
+|  LastModified: Feb 22, 2019                              |
 |  Author: Ma Bingyao <andot@hprose.com>                   |
 |                                                          |
 \*________________________________________________________*/
@@ -49,54 +49,59 @@
             Uri uri = new Uri((context as ClientContext).Uri);
             var webRequest = WebRequest.Create(uri) as HttpWebRequest;
             requests[webRequest] = null;
-            webRequest.Method = "POST";
-            webRequest.ContentType = "application/hprose";
-            webRequest.Credentials = Credentials;
-            webRequest.Timeout = (int)Timeout.TotalMilliseconds;
-            webRequest.SendChunked = false;
-            if (AcceptEncoding != null) {
-                webRequest.Headers.Set("Accept-Encoding", AcceptEncoding);
+            try {
+                webRequest.Method = "POST";
+                webRequest.ContentType = "application/hprose";
+                webRequest.Credentials = Credentials;
+                webRequest.Timeout = (int)Timeout.TotalMilliseconds;
+                webRequest.SendChunked = false;
+                if (AcceptEncoding != null) {
+                    webRequest.Headers.Set("Accept-Encoding", AcceptEncoding);
+                }
+                webRequest.ReadWriteTimeout = (int)Timeout.TotalMilliseconds;
+                webRequest.ProtocolVersion = HttpVersion.Version11;
+                if (Proxy != null) {
+                    webRequest.Proxy = Proxy;
+                }
+                webRequest.KeepAlive = KeepAlive;
+                if (KeepAlive) {
+                    webRequest.Headers.Set("Keep-Alive", KeepAliveTimeout.ToString());
+                }
+                webRequest.ConnectionGroupName = ConnectionGroupName;
+                if (ClientCertificates != null) {
+                    webRequest.ClientCertificates = ClientCertificates;
+                }
+                foreach (var header in Headers) {
+                    webRequest.Headers[header.Key] = header.Value;
+                }
+                webRequest.AllowWriteStreamBuffering = true;
+                webRequest.Headers.Set("Cookie", cookieManager.GetCookie(uri.Host, uri.AbsolutePath, uri.Scheme == "https"));
+                var ostream = await webRequest.GetRequestStreamAsync().ConfigureAwait(false);
+                await request.CopyToAsync(ostream).ConfigureAwait(false);
+                await ostream.FlushAsync().ConfigureAwait(false);
+                ostream.Dispose();
+                var webResponse = await webRequest.GetResponseAsync().ConfigureAwait(false) as HttpWebResponse;
+                requests[webRequest] = webResponse;
+                cookieManager.SetCookie(webResponse.Headers.GetValues("Set-Cookie"), uri.Host);
+                cookieManager.SetCookie(webResponse.Headers.GetValues("Set-Cookie2"), uri.Host);
+                var istream = webResponse.GetResponseStream();
+                string contentEncoding = webResponse.ContentEncoding.ToLower();
+                if (contentEncoding.IndexOf("deflate") > -1) {
+                    istream = new DeflateStream(istream, CompressionMode.Decompress);
+                }
+                else if (contentEncoding.IndexOf("gzip") > -1) {
+                    istream = new GZipStream(istream, CompressionMode.Decompress);
+                }
+                int len = (int)webResponse.ContentLength;
+                var response = (len > 0) ? new MemoryStream(len) : new MemoryStream();
+                await istream.CopyToAsync(response).ConfigureAwait(false);
+                istream.Dispose();
+                webResponse.Close();
+                return response;
             }
-            webRequest.ReadWriteTimeout = (int)Timeout.TotalMilliseconds;
-            webRequest.ProtocolVersion = HttpVersion.Version11;
-            if (Proxy != null) {
-                webRequest.Proxy = Proxy;
+            finally {
+                requests.Remove(webRequest, out var _);
             }
-            webRequest.KeepAlive = KeepAlive;
-            if (KeepAlive) {
-                webRequest.Headers.Set("Keep-Alive", KeepAliveTimeout.ToString());
-            }
-            webRequest.ConnectionGroupName = ConnectionGroupName;
-            if (ClientCertificates != null) {
-                webRequest.ClientCertificates = ClientCertificates;
-            }
-            foreach (var header in Headers) {
-                webRequest.Headers[header.Key] = header.Value;
-            }
-            webRequest.AllowWriteStreamBuffering = true;
-            webRequest.Headers.Set("Cookie", cookieManager.GetCookie(uri.Host, uri.AbsolutePath, uri.Scheme == "https"));
-            var ostream = await webRequest.GetRequestStreamAsync().ConfigureAwait(false);
-            await request.CopyToAsync(ostream).ConfigureAwait(false);
-            await ostream.FlushAsync().ConfigureAwait(false);
-            ostream.Dispose();
-            var webResponse = await webRequest.GetResponseAsync().ConfigureAwait(false) as HttpWebResponse;
-            requests[webRequest] = webResponse;
-            cookieManager.SetCookie(webResponse.Headers.GetValues("Set-Cookie"), uri.Host);
-            cookieManager.SetCookie(webResponse.Headers.GetValues("Set-Cookie2"), uri.Host);
-            var istream = webResponse.GetResponseStream();
-            string contentEncoding = webResponse.ContentEncoding.ToLower();
-            if (contentEncoding.IndexOf("deflate") > -1) {
-                istream = new DeflateStream(istream, CompressionMode.Decompress);
-            }
-            else if (contentEncoding.IndexOf("gzip") > -1) {
-                istream = new GZipStream(istream, CompressionMode.Decompress);
-            }
-            int len = (int)webResponse.ContentLength;
-            var response = (len > 0) ? new MemoryStream(len) : new MemoryStream();
-            await istream.CopyToAsync(response).ConfigureAwait(false);
-            istream.Dispose();
-            webResponse.Close();
-            return response;
         }
         private bool disposed = false;
         public void Dispose() {


Fixed #16.

Fixed #16.

--- SwitchableTankManagerGUI.cs
+++ SwitchableTankManagerGUI.cs
@@ -87,7 +87,7 @@
 				{
 					if(edit)
 					{
-						if(VolumeField.Draw("m3", true, manager.Volume/20, "F2"))
+						if(VolumeField.Draw("m3", manager.Volume/20, "F2"))
 						{
 							var max_volume = tank.Volume+manager.Volume-manager.TotalVolume;
 							if(VolumeField.Value > max_volume)
@@ -212,7 +212,9 @@
 			}
             config_name = Utils.LeftRightChooser(config_name, VolumeConfigsLibrary.UserConfigs,
                                                  "Select tank configuration to edit", 200);
-			if(GUILayout.Button("Delete", Styles.danger_button, GUILayout.ExpandWidth(false)) &&
+            if(config_name == null)
+                config_name = "";
+            if(GUILayout.Button("Delete", Styles.danger_button, GUILayout.ExpandWidth(false)) &&
 			   !string.IsNullOrEmpty(config_name))
 			{
 				//remove config


Removed 3 functions from the DriverHandler class

'StageToDriverStore', 'GetHardwareIdFromInf' and 'InstallDriver'
were not used and were removed.

Signed-off-by: Kostas Ladopoulos <7920ee5edb7fd3a4c6c6e3ebe9bd13d4a7f2eff1@citrix.com>

--- src/InstallAgent/DriverHandler.cs
+++ src/InstallAgent/DriverHandler.cs
@@ -153,144 +153,6 @@
             }
         }

-        // Driver will not install on device, until next reboot
-        public static bool StageToDriverStore(
-            string driverRootDir,
-            string driver,
-            SetupApi.SP_COPY copyStyle =
-                SetupApi.SP_COPY.NEWER_ONLY)
-        {
-            string build = WinVersion.Is64BitOS() ? @"\x64\" : @"\x86\";
-
-            string infDir = Path.Combine(
-                driverRootDir,
-                driver + build
-            );
-
-            string infPath = Path.Combine(
-                infDir,
-                driver + ".inf"
-            );
-
-            if (!File.Exists(infPath))
-            {
-                throw new Exception(
-                    String.Format("\'{0}\' does not exist", infPath)
-                );
-            }
-
-            Trace.WriteLine(
-                String.Format("Staging \'{0}\' to DriverStore", driver)
-            );
-
-            if (!SetupApi.SetupCopyOEMInf(
-                    infPath,
-                    infDir,
-                    SetupApi.SPOST.PATH,
-                    copyStyle,
-                    IntPtr.Zero,
-                    0,
-                    IntPtr.Zero,
-                    IntPtr.Zero))
-            {
-                Trace.WriteLine(
-                    String.Format("\'{0}\' driver staging failed: {1}",
-                        driver,
-                        new Win32Exception(
-                            Marshal.GetLastWin32Error()
-                        ).Message
-                    )
-                );
-                return false;
-            }
-
-            Trace.WriteLine(
-                String.Format(
-                    "\'{0}\' driver staging success", driver
-                )
-            );
-
-            return true;
-        }
-
-        // Searches an .inf file for a hardware device ID that is
-        // either a XenBus device itself or is a device enumerated
-        // under one. User has to supply which of the 3 XenBus IDs
-        // to look for. Function assumes there can be at most 1 such
-        // string in an .inf file. If not found, an empty string is
-        // returned.
-        public static string GetHardwareIdFromInf(
-            XenBus.Devs xenBusDev,
-            string infPath)
-        {
-            if (!File.Exists(infPath))
-            {
-                throw new Exception(
-                    String.Format("\'{0}\' does not exist", infPath)
-                );
-            }
-
-            string xenBusDevStr;
-
-            switch (xenBusDev)
-            {
-                case XenBus.Devs.DEV_0001:
-                    xenBusDevStr = "0001";
-                    break;
-                case XenBus.Devs.DEV_0002:
-                    xenBusDevStr = "0002";
-                    break;
-                case XenBus.Devs.DEV_C000:
-                    xenBusDevStr = "C000";
-                    break;
-                default:
-                    throw new Exception("Not a valid XenBus device");
-            }
-
-            string hwID = "";
-            string suffix = WinVersion.Is64BitOS() ? "amd64" : "x86";
-
-            string hwIDPattern =
-                @"((?:PCI|XENBUS|XENVIF)\\VEN_(?:5853|XS" +
-                xenBusDevStr + @")\&DEV_(?:" + xenBusDevStr +
-                @"|IFACE|VIF|VBD|NET)[A-Z\d\&_]*)";
-
-            using (System.IO.StreamReader infFile =
-                       new System.IO.StreamReader(infPath))
-            {
-                string line;
-                bool sectionFound = false;
-
-                while ((line = infFile.ReadLine()) != null)
-                {
-                    if (line.Equals("[Inst.NT" + suffix + "]"))
-                    {
-                        sectionFound = true;
-                        continue;
-                    }
-
-                    if (!sectionFound)
-                    {
-                        continue;
-                    }
-
-                    // When we reach the next section, break the loop
-                    if (line.StartsWith("["))
-                    {
-                        break;
-                    }
-
-                    foreach (Match m in Regex.Matches(line, hwIDPattern))
-                    {
-                        hwID = m.Value;
-                        break;
-                    }
-                }
-            }
-
-            return hwID;
-        }
-
         public static bool InstallDriver_2(
             string driverRootDir,
             string driver,
@@ -337,72 +199,6 @@
             Trace.WriteLine(
                 String.Format("Driver \'{0}\' installed successfully", driver)
             );
-            return true;
-        }
-
-        // Full path to driver .inf files is expected to be:
-        // "{driverRootDir}\{driver}\{x64|x86}\{driver}.inf"
-        public static bool InstallDriver(
-            XenBus.Devs xenBusDev,
-            string driverRootDir,
-            string driver,
-            NewDev.INSTALLFLAG installFlags =
-                NewDev.INSTALLFLAG.NONINTERACTIVE)
-        {
-            bool reboot;
-
-            string build = WinVersion.Is64BitOS() ? @"\x64\" : @"\x86\";
-
-            string infPath = Path.Combine(
-                driverRootDir,
-                driver + build + driver + ".inf"
-            );
-
-            if (!File.Exists(infPath))
-            {
-                throw new Exception(
-                    String.Format("\'{0}\' does not exist", infPath)
-                );
-            }
-
-            string hwID = GetHardwareIdFromInf(
-                xenBusDev,
-                infPath
-            );
-
-            if (String.IsNullOrEmpty(hwID))
-            {
-                throw new Exception(
-                    String.Format("Hardware ID found for \'{0}\'", driver)
-                );
-            }
-
-            Trace.WriteLine(
-                String.Format("Installing {0} on {1}", driver, hwID)
-            );
-
-            if (!NewDev.UpdateDriverForPlugAndPlayDevices(
-                    IntPtr.Zero,
-                    hwID,
-                    infPath,
-                    installFlags,
-                    out reboot))
-            {
-                Trace.WriteLine(
-                    String.Format("Driver \'{0}\' install failed: {1}",
-                        driver,
-                        new Win32Exception(
-                            Marshal.GetLastWin32Error()
-                        ).Message
-                    )
-                );
-                return false;
-            }
-
-            Trace.WriteLine(
-                String.Format("Driver \'{0}\' install success", driver)
-            );
-
             return true;
         }


🎈Add the missing property of Formium: DialogResult.

--- src/NetDimension.NanUI/Formium.cs
+++ src/NetDimension.NanUI/Formium.cs
@@ -603,13 +603,6 @@

         protected ILogger Logger => WinFormium.GetLogger();

-        ///// <summary>
-        ///// When the host window is loaded.
-        ///// </summary>
-        //protected virtual void OnWindowLoad()
-        //{
-
-        //}

         /// <summary>
         /// Gets or sets  a value indicating whether the formium allows to full screen mode.
@@ -672,7 +665,7 @@
             }
         }
         /// <summary>
-        /// Gets or sets the icon for the form.
+        /// <inheritdoc/>
         /// </summary>
         public Icon Icon
         {
@@ -680,7 +673,7 @@
             set => HostWindowInternal.Icon = value;
         }
         /// <summary>
-        /// Gets or sets the System.Drawing.Point that represents the upper-left corner of current window in screen coordinates.
+        /// <inheritdoc/>
         /// </summary>
         public Point Location
         {
@@ -688,7 +681,7 @@
             set => HostWindowInternal.Location = value;
         }
         /// <summary>
-        /// Gets or sets the size of the window.
+        /// <inheritdoc/>
         /// </summary>
         public Size Size
         {
@@ -699,7 +692,7 @@
             }
         }
         /// <summary>
-        /// Gets or sets the size of the client area of the window.
+        /// <inheritdoc/>
         /// </summary>
         public Size ClientSize
         {
@@ -709,7 +702,7 @@
             }
         }
         /// <summary>
-        /// Gets the maximum size the window can be resized to.
+        /// <inheritdoc/>
         /// </summary>
         public Size MaximumSize
         {
@@ -725,7 +718,7 @@
             set => HostWindowInternal.MinimumSize = value;
         }
         /// <summary>
-        /// Gets or sets a value indicating whether the window is displayed in the Windows taskbar.
+        /// <inheritdoc/>
         /// </summary>
         public bool ShowInTaskbar
         {
@@ -741,7 +734,7 @@
             }
         }
         /// <summary>
-        /// Gets or sets the starting position of the window at run time.
+        /// <inheritdoc/>
         /// </summary>
         public FormStartPosition StartPosition
         {
@@ -759,7 +752,7 @@

         FormWindowState? _deferredWindowState = null;
         /// <summary>
-        /// Gets or sets a value that indicates whether window is minimized, maximized, or normal.
+        /// <inheritdoc/>
         /// </summary>
         public FormWindowState WindowState
         {
@@ -792,7 +785,7 @@
             }
         }
         /// <summary>
-        /// Gets or sets a value indicating whether the window should be displayed as a topmost
+        /// <inheritdoc/>
         /// </summary>
         public bool TopMost
         {
@@ -800,7 +793,7 @@
             set => HostWindowInternal.TopMost = value;
         }
         /// <summary>
-        /// Gets or sets the width of the window.
+        /// <inheritdoc/>
         /// </summary>
         public int Width
         {
@@ -808,7 +801,7 @@
             set => HostWindowInternal.Width = value;
         }
         /// <summary>
-        /// Gets or sets the height of the window.
+        /// <inheritdoc/>
         /// </summary>
         public int Height
         {
@@ -816,7 +809,7 @@
             set => HostWindowInternal.Height = value;
         }
         /// <summary>
-        /// Gets or sets the distance, in pixels, between the left edge of the window and the left edge in current desktop area.
+        /// <inheritdoc/>
         /// </summary>
         public int Left
         {
@@ -824,7 +817,7 @@
             set => HostWindowInternal.Left = value;
         }
         /// <summary>
-        /// Gets or sets the distance, in pixels, between the top edge of the window and the top edge in current desktop area.
+        /// <inheritdoc/>
         /// </summary>
         public int Top
         {
@@ -832,9 +825,21 @@
             set => HostWindowInternal.Top = value;
         }

+        /// <summary>
+        /// <inheritdoc/>
+        /// </summary>
         public bool Visible
         {
             get => HostWindowInternal?.Visible ?? false;
+        }
+
+        /// <summary>
+        /// <inheritdoc/>
+        /// </summary>
+        public DialogResult DialogResult
+        {
+            get => HostWindowInternal.DialogResult;
+            set => HostWindowInternal.DialogResult = value;
         }

         /// <summary>


Delete Subnetwork.cs

Delete Subnetwork.cs

--- src/Network/Network/Subnetwork.cs
+++ src/Network/Network/Subnetwork.cs
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Network
-{
-    public class Subnetwork
-    {
-        public IpAddress NetworkId { get; set; }
-        public IpAddress BroadcastAddress { get; set; }
-        public IpAddress FirstUsable { get; set; }
-        public IpAddress LastUsable { get; set; }
-    }
-}


Patch should not modify existing instance

--- src/Portable/StorageExtensions.cs
+++ src/Portable/StorageExtensions.cs
@@ -106,8 +106,9 @@
             if (existing == null) return false;
             if (predicate != null && !predicate(existing)) return false;

-            action(existing);
-            await storage.Put(existing).ConfigureAwait(false);
+            var cloned = ObjectHelper<T>.Clone(existing);
+            action(cloned);
+            await storage.Put(cloned).ConfigureAwait(false);
             return true;
         }
     }


added comments and clarified exception

added comments and clarified exception


fix ending quote

fix ending quote

--- ExtjsWd/Elements/ComboBox.cs
+++ ExtjsWd/Elements/ComboBox.cs
@@ -135,7 +135,7 @@
         public T ShouldHaveValueFilledIn(string item)
         {
             var val = Input.GetValue().Trim();
-            Assert.IsTrue(val.StartsWith(item.Trim()), "Expected input value to contain '" + item + "' but was '" + val);
+            Assert.IsTrue(val.StartsWith(item.Trim()), "Expected input value to contain '" + item + "' but was '" + val + "'");
             return (T)this;
         }


Removed try with

Removed try with

--- samples/Mandelbrot.CSharp/ScalarLinq.cs
+++ samples/Mandelbrot.CSharp/ScalarLinq.cs
@@ -132,18 +132,12 @@
                                           .Take(max_iters)
                                           .Count()
                   select iters);
-            try
-            {
+

-                context.Fill(query, _output);
-                _output.Refresh();
-                var array = _output.GetArray();
-                DrawPixels(array);
-            }
-            catch (Exception ex)
-            {
-
-            }
+            context.Fill(query, _output);
+            _output.Refresh();
+            var array = _output.GetArray();
+            DrawPixels(array);

         }


use our own CheatColorSphere method

use our own CheatColorSphere method

--- 140-speedrun-timer/LevelObject/Cheats.cs
+++ 140-speedrun-timer/LevelObject/Cheats.cs
@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.Reflection;
 using UnityEngine;

 namespace SpeedrunTimerMod
@@ -12,6 +13,10 @@
 		public static bool LevelLoadedByCheat { get; private set; }
 		static bool _loadingLevel;

+		static FieldInfo _previousSphereField;
+		static FieldInfo _activeColorSpheresField;
+		static FieldInfo _allColorSpheresField;
+
 		List<Savepoint> _savepoints;
 		List<BeatLayerSwitch> _beatSwitches;
 		Utils.Label _cheatWatermark;
@@ -252,7 +257,58 @@
 			// change the colors of the level and player according to the gate
 			var player = Globals.player.GetComponent<MyCharacterController>();
 			player.visualPlayer.SetColor((id % 2 == 0) ? Color.black : Color.white, 1f);
-			Globals.colorChangeSystem.CheatColorSphere(id + 1);
+			CheatColorSphere(id + 1);
+		}
+
+		void CheatColorSphere(int beatIndex)
+		{
+			if (beatIndex < 1)
+			{
+				return;
+			}
+
+			if (_previousSphereField == null)
+			{
+				_previousSphereField = typeof(ColorChangeSystem)
+					.GetField("previousSphere", BindingFlags.Instance | BindingFlags.NonPublic);
+			}
+
+			if (_activeColorSpheresField == null)
+			{
+				_activeColorSpheresField = typeof(ColorChangeSystem)
+					.GetField("activeColorSpheres", BindingFlags.Instance | BindingFlags.NonPublic);
+			}
+
+			if (_allColorSpheresField == null)
+			{
+				_allColorSpheresField = typeof(ColorChangeSystem)
+					.GetField("allColorSpheres", BindingFlags.Instance | BindingFlags.NonPublic);
+			}
+
+			var previousSphere = (ColorSphere)_previousSphereField.GetValue(Globals.colorChangeSystem);
+			var activeColorSpheres = (List<ColorSphere>)_activeColorSpheresField.GetValue(Globals.colorChangeSystem);
+			var allColorSpheres = (List<ColorSphere>)_allColorSpheresField.GetValue(Globals.colorChangeSystem);
+
+			activeColorSpheres.Clear();
+
+			if (beatIndex == 1)
+			{
+				_previousSphereField.SetValue(Globals.colorChangeSystem, null);
+				activeColorSpheres.Add(allColorSpheres.Find(colorSphere => colorSphere.beatLayer == -1));
+				return;
+			}
+
+			if (beatIndex == 2)
+			{
+				var prev = allColorSpheres.Find(colorSphere => colorSphere.beatLayer == -1);
+				_previousSphereField.SetValue(Globals.colorChangeSystem, prev);
+				activeColorSpheres.Add(allColorSpheres.Find(colorSphere => colorSphere.beatLayer == 1));
+				return;
+			}
+
+			var previous = allColorSpheres.Find(colorSphere => colorSphere.beatLayer == beatIndex - 2);
+			_previousSphereField.SetValue(Globals.colorChangeSystem, previous);
+			activeColorSpheres.Add(allColorSpheres.Find(colorSphere => colorSphere.beatLayer == beatIndex - 1));
 		}

 		public static void TeleportToBeatLayerSwitch(BeatLayerSwitch beatSwitch)


TextureEvent.FadeInメソッドのパラメータのデータ型を変更

TextureEvent.FadeInメソッドのパラメータのデータ型を変更

--- src/Sitrine/Event/TextureEvent.cs
+++ src/Sitrine/Event/TextureEvent.cs
@@ -141,7 +141,6 @@

             return this;
         }
-
         #endregion

         #region CreateSpriteAnimation
@@ -292,12 +291,12 @@
         /// テクスチャを指定されたフレーム時間でフェードインします。
         /// このメソッドは遅延実行されます。
         /// </summary>
-        /// <param name="frames">アニメーションが完了するまでのフレーム時間。</param>
-        /// <param name="easing">適用するイージング関数。</param>
-        /// <returns>このイベントのオブジェクトを返します。</returns>
-        public TextureEvent FadeIn(int frames, Func<double, double> easing = null)
-        {
-            return this.Color(new Color4(255, 255, 255, 255), frames, easing);
+        /// <param name="duration">アニメーションが行われる時間。</param>
+        /// <param name="easing">適用するイージング関数。</param>
+        /// <returns>このイベントのオブジェクトを返します。</returns>
+        public TextureEvent FadeIn(DelaySpan duration, Func<double, double> easing = null)
+        {
+            return this.Color(new Color4(255, 255, 255, 255), duration, easing);
         }
         #endregion


Fault's namespace should be taken into account

--- src/SoapCore/MetaWCFBodyWriter.cs
+++ src/SoapCore/MetaWCFBodyWriter.cs
@@ -832,7 +832,9 @@
 				writer.WriteAttributeString("name", $"{BindingType}_{operation.Name}_{fault.Name}Fault_FaultMessage");
 				writer.WriteStartElement("wsdl:part");
 				writer.WriteAttributeString("name", "detail");
-				writer.WriteAttributeString("element", "tns:" + fault.Name);
+				var ns = $"q{_namespaceCounter++}";
+				writer.WriteAttributeString("element", $"{ns}:{fault.Name}");
+				writer.WriteAttributeString($"xmlns:{ns}", GetDataContractNamespace(fault));
 				writer.WriteEndElement(); // wsdl:part
 				writer.WriteEndElement(); // wsdl:message
 			}


Fix commit 2db91ab3ceafb4448ac57f857c50f14340aa6a31

--- Algo/SubscriptionOnlineMessageAdapter.cs
+++ Algo/SubscriptionOnlineMessageAdapter.cs
@@ -73,7 +73,8 @@

 		private readonly PairSet<Tuple<DataType, SecurityId>, SubscriptionInfo> _subscriptionsByKey = new PairSet<Tuple<DataType, SecurityId>, SubscriptionInfo>();
 		private readonly Dictionary<long, SubscriptionInfo> _subscriptionsById = new Dictionary<long, SubscriptionInfo>();
-
+		private readonly HashSet<long> _strategyPosSubscriptions = new HashSet<long>();
+
 		/// <summary>
 		/// Initializes a new instance of the <see cref="SubscriptionOnlineMessageAdapter"/>.
 		/// </summary>
@@ -284,6 +285,7 @@
 			{
 				_subscriptionsByKey.Clear();
 				_subscriptionsById.Clear();
+				_strategyPosSubscriptions.Clear();
 			}
 		}

@@ -310,8 +312,9 @@
 			{
 				if (isSubscribe)
 				{
-					if (message is IStrategyIdMessage strategyMsg && !strategyMsg.StrategyId.IsEmpty())
-					{
+					if (message is PortfolioLookupMessage posMsg && !posMsg.StrategyId.IsEmpty())
+					{
+						_strategyPosSubscriptions.Add(posMsg.TransactionId);
 						sendInMsg = message;
 					}
 					else if (message.To == null)
@@ -416,6 +419,10 @@
 							}
 						}
 					}
+					else if (_strategyPosSubscriptions.Remove(originId))
+					{
+						sendInMsg = message;
+					}
 					else
 					{
 						sendOutMsgs = new[]


Renaming refactoring. Better error messages.

--- src/Tagger.Dwm/MainWindow.xaml.cs
+++ src/Tagger.Dwm/MainWindow.xaml.cs
@@ -7,6 +7,7 @@
 using Tagger.WinAPI;
 using System.ComponentModel;
 using System.Runtime.InteropServices;
+using Utils.Extensions;

 namespace Tagger.Dwm
 {
@@ -15,12 +16,12 @@
     /// </summary>
     public partial class MainWindow : Window
     {
-        private IntPtr thumb;
+        private IntPtr thumbnailHandle;

         public MainWindow()
         {
             InitializeComponent();
-            this.Loaded += delegate { this.GetWindows(); };
+            this.Loaded += delegate { this.RebindWindowItems(); };
         }

         private IntPtr Handle
@@ -28,20 +29,24 @@
             get { return new WindowInteropHelper(this).Handle; }
         }

-        private void GetWindows()
+        /// <summary>
+        /// NOTE: Would not be reused
+        /// </summary>
+        private void RebindWindowItems()
         {
-            var windows = new List<WindowItem>();
-            var res = NativeAPI.EnumWindows( (IntPtr hwnd, int lParam) =>
+            lstWindows.Items.Clear();
+
+            var success = NativeAPI.EnumWindows( (hwnd, lParam) =>
             {
-                var winLong = NativeAPI.GetWindowLong(hwnd, NativeAPI.GWL_STYLE);
-                if (winLong == 0)
+                var windowLong = NativeAPI.GetWindowLong(hwnd, NativeAPI.GWL_STYLE);
+                if (windowLong == 0)
                 {
                     throw new Win32Exception(Marshal.GetLastWin32Error());
                 }

                 const ulong TARGETWINDOW = NativeAPI.WS_BORDER | NativeAPI.WS_VISIBLE;

-                if (this.Handle != hwnd && (winLong & TARGETWINDOW) == TARGETWINDOW)
+                if (this.Handle != hwnd && (windowLong & TARGETWINDOW) == TARGETWINDOW)
                 {
                     var sb = new StringBuilder(100);
                     var ress = NativeAPI.GetWindowText(hwnd, sb, sb.Capacity);
@@ -51,100 +56,98 @@
                         throw new Win32Exception(err);
                     }

-                    var t = new WindowItem();
-                    t.Handle = hwnd;
-                    t.Title = sb.ToString();
-                    windows.Add(t);
+                    lstWindows.Items.Add(new WindowItem
+                    {
+                        Handle = hwnd,
+                        Title = sb.ToString(),
+                    });
                 }

                 return true; //continue enumeration
             }, 0);
-            if (res == 0)
+
+            if (success == 0)
             {
                 throw new Win32Exception(Marshal.GetLastWin32Error());
             }

-            lstWindows.Items.Clear();
-            foreach (WindowItem w in windows)
-                lstWindows.Items.Add(w);
+
         }

         private void Button_Click(object sender, RoutedEventArgs e)
         {
-            if (thumb != IntPtr.Zero)
+            if (this.thumbnailHandle != IntPtr.Zero)
             {
-                var res = NativeAPI.DwmUnregisterThumbnail(thumb);
-                if (res != NativeAPI.S_OK)
+                var hresult = NativeAPI.DwmUnregisterThumbnail(this.thumbnailHandle);
+                if (hresult != NativeAPI.S_OK)
                 {
-                    throw new COMException("DwmUnregisterThumbnail( )", res);
+                    throw new COMException("DwmUnregisterThumbnail( {0} ) failed".Format(this.thumbnailHandle), hresult);
                 }
             }

-            GetWindows();
+            this.RebindWindowItems();
         }

         private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
-            var w = (WindowItem)lstWindows.SelectedItem;
+            var window = (WindowItem)lstWindows.SelectedItem;

-            if (thumb != IntPtr.Zero)
+            if (this.thumbnailHandle != IntPtr.Zero)
             {
-                var res  = NativeAPI.DwmUnregisterThumbnail(thumb);
-                if (res != NativeAPI.S_OK)
+                var hresultUnregister = NativeAPI.DwmUnregisterThumbnail(thumbnailHandle);
+                if (hresultUnregister != NativeAPI.S_OK)
                 {
-                    throw new COMException("DwmUnregisterThumbnail failed", res);
+                    throw new COMException("DwmUnregisterThumbnail failed", hresultUnregister);
                 }
             }

-            int i = NativeAPI.DwmRegisterThumbnail(this.Handle, w.Handle, out thumb);
+            var hresultRegister = NativeAPI.DwmRegisterThumbnail(this.Handle, window.Handle, out thumbnailHandle);

-            if (i == NativeAPI.S_OK)
+            if (hresultRegister == NativeAPI.S_OK)
             {
-                UpdateThumb();
+                this.UpdateThumb();
             }
             else
             {
-                throw new COMException("DwmRegisterThumbnail failed", i);
+                throw new COMException("DwmRegisterThumbnail( {0}, {1}, ... )".Format(this.Handle, window.Handle), hresultRegister);
             }
         }

         private void UpdateThumb()
         {
-            if (thumb != IntPtr.Zero)
+            if (this.thumbnailHandle == IntPtr.Zero) { return; }
+
+            NativeAPI.SIZE thumbnailSize;
+            var hresultQuery = NativeAPI.DwmQueryThumbnailSourceSize(thumbnailHandle, out thumbnailSize);
+            if (hresultQuery != NativeAPI.S_OK)
             {
-                NativeAPI.SIZE thumbnailSize;
-                var res = NativeAPI.DwmQueryThumbnailSourceSize(thumb, out thumbnailSize);
-                if (res != NativeAPI.S_OK)
+                throw new COMException("DwmQueryThumbnailSourceSize( {0}, ... ) failed".Format(thumbnailHandle), hresultQuery);
+            }
+
+            var location = canvas.TranslatePoint(new Point(0, 0), this);
+            var properties = new NativeAPI.DWM_THUMBNAIL_PROPERTIES
+            {
+                fVisible = true,
+                dwFlags = NativeAPI.DWM_TNP_VISIBLE | NativeAPI.DWM_TNP_RECTDESTINATION,
+                rcDestination = new NativeAPI.RECT
                 {
-                    throw new COMException("DwmQueryThumbnailSourceSize failed", res);
-                }
+                    Left = (int)location.X,
+                    Top = (int)location.Y,
+                    Right = (int)(location.X + Math.Min(canvas.ActualWidth, thumbnailSize.x)),
+                    Bottom = (int)(location.Y + Math.Min(canvas.ActualHeight, thumbnailSize.y)),
+                },
+            };

-                Point locationFromWindow = canvas.TranslatePoint(new Point(0, 0), this);
-
-                var props = new NativeAPI.DWM_THUMBNAIL_PROPERTIES
-                {
-                    fVisible = true,
-                    dwFlags = NativeAPI.DWM_TNP_VISIBLE | NativeAPI.DWM_TNP_RECTDESTINATION,
-                    rcDestination = new NativeAPI.RECT
-                    {
-                        Left = (int)locationFromWindow.X,
-                        Top = (int)locationFromWindow.Y,
-                        Right = (int)(locationFromWindow.X + Math.Min(canvas.ActualWidth, thumbnailSize.x)),
-                        Bottom = (int)(locationFromWindow.Y + Math.Min(canvas.ActualHeight, thumbnailSize.y)),
-                    },
-                };
-
-                var res2 = NativeAPI.DwmUpdateThumbnailProperties(thumb, ref props);
-                if (res2 != NativeAPI.S_OK)
-                {
-                    throw new COMException("DwmUpdateThumbnailProperties", res2);
-                }
+            var hresultUpdate = NativeAPI.DwmUpdateThumbnailProperties(thumbnailHandle, ref properties);
+            if (hresultUpdate != NativeAPI.S_OK)
+            {
+                throw new COMException("DwmUpdateThumbnailProperties( {0}, ... ) failed".Format(thumbnailHandle), hresultUpdate);
             }
         }

         private void ComboBox_SizeChanged(object sender, SizeChangedEventArgs e)
         {
-            UpdateThumb();
+            this.UpdateThumb();
         }
     }
 }


Don't save close state on reload of settings

--- ApplicationView/AdvancedControlsPanel.cs
+++ ApplicationView/AdvancedControlsPanel.cs
@@ -72,6 +72,7 @@
 				return;
 			}

+			PopOutManager.SaveIfClosed = false;
 			// remove the advance control and replace it with new ones built for the selected printer
 			int advancedControlsIndex = GetChildIndex(advancedTab);
 			RemoveChild(advancedControlsIndex);
@@ -79,6 +80,7 @@

 			advancedTab = CreateAdvancedControlsTab();
 			AddChild(advancedTab, advancedControlsIndex);
+			PopOutManager.SaveIfClosed = true;
 		}

 		public override void OnClosed(EventArgs e)


hash with quick file reads

hash with quick file reads

--- FluentFTP/Helpers/FtpHash.cs
+++ FluentFTP/Helpers/FtpHash.cs
@@ -1,4 +1,5 @@
 using FluentFTP.Helpers.Hashing;
+using FluentFTP.Streams;
 using System;
 using System.IO;
 using System.Security.Cryptography;
@@ -50,7 +51,11 @@
 		/// <returns>True if the computed hash matches what's stored in this object.</returns>
 		/// <exception cref="NotImplementedException">Thrown if called on a CRC Hash</exception>
 		public bool Verify(string file) {
-			using (var istream = new FileStream(file, FileMode.Open, FileAccess.Read)) {
+
+			// read the file using a FileStream or by reading it entirely into memory if it fits within 1 MB
+			using (var istream = FtpFileStream.GetFileReadStream(file, false, 1024 * 1024)) {
+
+				// verify the file data against the hash reported by the FTP server
 				return Verify(istream);
 			}
 		}
@@ -124,12 +129,13 @@
 						foreach (var b in data) {
 							hash.Append(b.ToString("x2"));
 						}
-
-						return hash.ToString().ToUpper() == m_value.ToUpper();
+						return hash.ToString().Equals(m_value, StringComparison.OrdinalIgnoreCase);
 					}
 				}
 				finally {
-#if !NET20 && !NET35 // .NET 2.0 doesn't provide access to Dispose() for HashAlgorithm
+
+// .NET 2.0 doesn't provide access to Dispose() for HashAlgorithm
+#if !NET20 && !NET35
 					if (hashAlg != null) {
 						hashAlg.Dispose();
 					}


hp, winpercentage 범위 넘어가는거 수정

hp, winpercentage 범위 넘어가는거 수정

--- Assets/Scripts/CharacterBarController.cs
+++ Assets/Scripts/CharacterBarController.cs
@@ -42,12 +42,15 @@
         GuageControl(Health_bar, Health_percentage, HPconstant1, HPconstant2);
         GuageControl(Ult_bar, Ult_percentage, Ultconstant1, Ultconstant2);
         GuageControl(Win_bar, Win_percentage, Winconstant1, Winconstant2);
-        Health_percentage = CC.hp / MaxHP;
-        if (inventory.itemAdded == true)
-        {
+        if (CC.hp >= 0)
+            Health_percentage = CC.hp / MaxHP;
+        else if (CC.hp < 0)
+            Health_percentage = 0f;
+        if (inventory.itemAdded == true && Win_percentage <= 1f)
             Win_percentage += 0.05f * Time.deltaTime;
-            //Debug.Log(Win_percentage);
-        }
+        else if (Win_percentage >= 1f)
+            Win_percentage = 1f;
+
     }

     void GuageControl(GameObject bar, float percentage, float constant1, float constant2)


add toggle function

add toggle function

--- Assets/Scripts/ControllerInteractions.cs
+++ Assets/Scripts/ControllerInteractions.cs
@@ -82,16 +82,14 @@
         if (OVRInput.Get(OVRInput.Axis1D.SecondaryHandTrigger, OVRInput.Controller.Touch) > 0.8f && controller.GetComponent<VRTK_InteractGrab>().GetGrabbedObject() == null)
         {
             selectionZone = true; //ULTRA TEMPORARY SOLUTION TO VRTK GRABBABLE WAYPOINT ISSUE
-            controller.GetComponent<VRTK_Pointer>().Toggle(true);
-            raycastOn = true;
+            toggleRaycastOn();
         } else
         {
             if(raycastOn == true) //ULTRA TEMPORARY SOLUTION TO VRTK GRABBABLE WAYPOINT ISSUE
             {
                 selectionZone = false; //ULTRA TEMPORARY SOLUTION TO VRTK GRABBABLE WAYPOINT ISSUE
             }
-            controller.GetComponent<VRTK_Pointer>().Toggle(false);
-            raycastOn = false;
+            toggleRaycastOff();

         }

@@ -216,4 +214,18 @@
     {
         return indexReleased;
     }
+
+    private void toggleRaycastOn()
+    {
+
+        controller.GetComponent<VRTK_Pointer>().Toggle(true);
+        raycastOn = true;
+
+    }
+
+    private void toggleRaycastOff()
+    {
+        controller.GetComponent<VRTK_Pointer>().Toggle(false);
+        raycastOn = false;
+    }
 }


Corrected xml exception comments.

Corrected xml exception comments.

--- AudioWorks/AudioWorks.Common/CoverArt.cs
+++ AudioWorks/AudioWorks.Common/CoverArt.cs
@@ -53,6 +53,10 @@
         /// <param name="path">The fully-qualified path to the file.</param>
         /// <exception cref="ArgumentNullException">Thrown if <paramref name="path"/> is null or empty.</exception>
         /// <exception cref="FileNotFoundException">Thrown if <paramref name="path"/> does not exist.</exception>
+        /// <exception cref="ImageUnsupportedException">Thrown if <paramref name="path"/> is not a supported image
+        /// format.</exception>
+        /// <exception cref="ImageInvalidException">Thrown if <paramref name="path"/> is not a valid image file.
+        /// </exception>
         public CoverArt([NotNull] string path)
         {
             if (string.IsNullOrEmpty(path))
@@ -112,7 +116,6 @@
         /// Gets the raw image data.
         /// </summary>
         /// <returns>The raw image data.</returns>
-        /// <exception cref="NotImplementedException"></exception>
         [NotNull]
         public byte[] GetData()
         {


Added missing TradeId field

Added missing TradeId field

--- Binance.Net/Objects/BinanceOrderTrade.cs
+++ Binance.Net/Objects/BinanceOrderTrade.cs
@@ -4,6 +4,10 @@
 {
     public class BinanceOrderTrade
     {
+        /// <summary>
+        /// The id of the trade
+        /// </summary>
+        public long TradeId { get; set; }
         /// <summary>
         /// Price of the trade
         /// </summary>


Missed AppDispatcher [Obsolete] message update when renamed new action-receiving message from Register to Receive

--- Bridge.React/Dispatcher/AppDispatcher.cs
+++ Bridge.React/Dispatcher/AppDispatcher.cs
@@ -56,7 +56,7 @@
 		/// <summary>
 		/// Actions will sent to each receiver in the same order as which the receivers called Register.
 		/// </summary>
-		[Obsolete("Support for Actions attributed to different sources (i.e. View vs. Server actions) will be removed from the IDispatcher interface. Use the Register(Action<IDispatcherAction>) method instead of Register(Action<DispatcherMessage>).")]
+		[Obsolete("Support for Actions attributed to different sources (i.e. View vs. Server actions) will be removed from the IDispatcher interface. Use the Receive(Action<IDispatcherAction>) method instead of Register(Action<DispatcherMessage>).")]
 		public void Register(Action<DispatcherMessage> callback)
 		{
 			_dispatcher += callback;


SB-190 Exception logging change

SB-190 Exception logging change

--- CCW/src/CCW/Controllers/CCWController.cs
+++ CCW/src/CCW/Controllers/CCWController.cs
@@ -263,10 +263,10 @@
                         if (x is FaultException<CVSECommonException>) // From the web service.
                         {
                             _logger.LogDebug("CVSECommonException:");
-                            _logger.LogDebug(JsonConvert.SerializeObject(x, Formatting.Indented, new JsonSerializerSettings
-                            {
-                                ReferenceLoopHandling = ReferenceLoopHandling.Serialize
-                            }));
+                            FaultException < CVSECommonException > fault =(FaultException<CVSECommonException>) x;
+                            _logger.LogDebug("errorId: {0}", fault.Detail.errorId );
+                            _logger.LogDebug("errorMessage: {0}", fault.Detail.errorMessage);
+                            _logger.LogDebug("systemError: {0}", fault.Detail.systemError);
                             return true;
                         }
                         return true; // ignore other exceptions
@@ -294,10 +294,10 @@
                         if (x is FaultException<CVSECommonException>) // From the web service.
                         {
                             _logger.LogDebug("CVSECommonException:");
-                            _logger.LogDebug(JsonConvert.SerializeObject(x, Formatting.Indented, new JsonSerializerSettings
-                            {
-                                ReferenceLoopHandling = ReferenceLoopHandling.Serialize
-                            }));
+                            FaultException<CVSECommonException> fault = (FaultException<CVSECommonException>)x;
+                            _logger.LogDebug("errorId: {0}", fault.Detail.errorId);
+                            _logger.LogDebug("errorMessage: {0}", fault.Detail.errorMessage);
+                            _logger.LogDebug("systemError: {0}", fault.Detail.systemError);
                             return true;
                         }
                         return true; // ignore other exceptions


More to-string

More to-string

--- CFlow/CFlow.Parser/CFlow.XrefFunction.cs
+++ CFlow/CFlow.Parser/CFlow.XrefFunction.cs
@@ -19,5 +19,10 @@
             Line = line;
             Signature = signature ?? string.Empty;
         }
+
+        public override string ToString()
+        {
+            return $"{ Name }: { Signature } <{ File }>:{ Line } => { References.Count } references";
+        }
     }
 }