From d66100879eb3a32482355c55fc457c22a33d7d14 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Wed, 23 Sep 2026 15:10:33 +1000 Subject: [PATCH] Fix the Windows head items from the review - Glyph positions (the selection highlight, the column a click lands in, the subtitle's width) use the unrounded advance GDI+ draws at, not the whole-pixel cell the grid is laid out in: at 96 DPI 8.8 against 9, a character off by column 22 and more than three at 175%. - The first window is sized for the display it opens on, and kept inside the working area. Unscaled, a pane held four characters at 200%. - Keys, clicks and menu events are queued and handed over one per frame, in the order they happened. A slot per kind lost the second of two keys, and applied a click before the key pressed ahead of it - d then a click discarded an entry the reader never looked at. The frame does not wait while input is queued. That also reopens the menu on a right click of the row it was open on. - user32's modal loops - the scroll bar's while the thumb is dragged, the frame's while the window is moved or sized - run frames on a timer, through ILoopHooks.Frame, so the panes follow the thumb instead of freezing until the release. - Losing mouse capture, or a move with the button up, ends a selection or splitter drag. - At logoff the form stops arrivals and stages the queue itself, inside WM_ENDSESSION, through ILoopHooks.SessionEnding: Windows may end the process once that returns, before the loop reaches its own shutdown. - ImageCache keeps only what is on screen, and keys a picture by the content hash as well as its stamp. Pending files are read shared with writers and deleters, so a read overlapping an accept or a re-run cannot fail it. --- .../FormsHeadTests.cs | 933 ++++++++++++++++++ .../ImageCacheTests.cs | 53 +- .../WindowsPixelTests.FileDiff.verified.png | Bin 19728 -> 19731 bytes ...lTests.GroupedConflictedQueue.verified.png | Bin 26485 -> 26482 bytes .../WindowsPixelTests.Images.verified.png | Bin 24780 -> 24782 bytes ...dowsPixelTests.InlineAccepted.verified.png | Bin 18300 -> 18301 bytes ...WindowsPixelTests.InlineQueue.verified.png | Bin 22974 -> 22972 bytes ...indowsPixelTests.InlineSingle.verified.png | Bin 21005 -> 21007 bytes .../WindowsPixelTests.LongPane.verified.png | Bin 37913 -> 37916 bytes ...dowsPixelTests.LongQueueLabel.verified.png | Bin 24191 -> 24191 bytes .../WindowsPixelTests.Minimal.verified.png | Bin 35908 -> 35910 bytes .../WindowsPixelTests.Selection.verified.png | Bin 21439 -> 21438 bytes .../FormsViewerWindow.cs | 27 +- src/DiffEngineViewer.Windows/ImageCache.cs | 31 +- src/DiffEngineViewer.Windows/MonoFont.cs | 11 + src/DiffEngineViewer.Windows/ViewerCanvas.cs | 77 +- src/DiffEngineViewer.Windows/ViewerForm.cs | 191 +++- src/DiffEngineViewer/FileSide.cs | 30 +- src/DiffEngineViewer/ILoopHooks.cs | 28 + src/DiffEngineViewer/ViewerProgram.cs | 26 + todo.md | 46 - 21 files changed, 1358 insertions(+), 95 deletions(-) create mode 100644 src/DiffEngineViewer.Windows.Tests/FormsHeadTests.cs create mode 100644 src/DiffEngineViewer/ILoopHooks.cs diff --git a/src/DiffEngineViewer.Windows.Tests/FormsHeadTests.cs b/src/DiffEngineViewer.Windows.Tests/FormsHeadTests.cs new file mode 100644 index 00000000..4cd0f803 --- /dev/null +++ b/src/DiffEngineViewer.Windows.Tests/FormsHeadTests.cs @@ -0,0 +1,933 @@ +using System.Drawing.Text; + +/// +/// The WinForms head's own behaviour, through a real form and canvas: where glyphs land, how big the +/// first window is, input order, the context menu, modal loops, mouse capture and logoff. +/// +/// Input is posted as real window messages and pumped through the real form, one frame at a time +/// in the order ViewerProgram.Loop runs them: Apply, DoEvents, Drain, then the model. +/// +/// +[NotInParallel] +[TUnit.Core.Executors.STAThreadExecutor] +public class FormsHeadTests +{ + const int columns = 120; + const int rows = 37; + + /// + /// What reports against where + /// actually puts glyphs, at several display scales. + /// + /// The cell is measured the way the canvas measures it: a screen Graphics with no hint set, so + /// whatever the system default is. The glyphs are drawn the way the canvas draws them: + /// and . Where each glyph landed is + /// read back from the pixels, as the centre of each of 100 drawn bars. + /// + /// + [Test] + public async Task TheAdvanceIsWhereGlyphsLand() + { + using var font = MonoFont.Create(); + var report = new StringBuilder(); + var worst = 0d; + foreach (var dpi in (int[]) [96, 120, 144, 168, 192]) + { + var (cell, advance) = Measure(font, dpi); + var bars = DrawnBars(font, dpi, 100); + var at99 = bars[99] - bars[0] - 99 * advance; + worst = Math.Max(worst, Math.Abs(at99)); + report.AppendLine($"dpi {dpi}: cell {cell}, advance {advance:F3}, drawn {(bars[99] - bars[0]) / 99:F3}, drift at column 99 {at99:F2}px"); + } + + Console.WriteLine(report); + await Assert.That(worst).IsLessThan(1d); + } + + /// + /// through the real canvas at the test host's scale (96): a bar at column 66 of a pane + /// row, with columns 66 to 67 selected. The bar's ink has to sit inside the highlight. + /// + [Test] + public async Task HighlightAtColumn66CoversItsGlyph() + { + var line = new string(' ', 66) + "|"; + var state = ViewerSession.Resize( + ViewerSession.Drag(Fixtures.File(line, line), PaneSide.Left, 0, 66, 0, 67), + columns, + rows); + + // Wide enough that column 66 is on screen in a pane: at 1100 each pane holds about 52. + using var host = new CanvasHost(2000, 700); + var bitmap = host.Draw(ScreenBuilder.Build(state)); + var highlight = Bounds(bitmap, _ => _.ToArgb() == Palette.Selection.ToArgb()); + await Assert.That(highlight).IsNotNull(); + + // The bar is the only bright ink in the left pane's row: the gutter's line number is drawn + // Dim, which is darker than the threshold, and the right pane's copy is far to the right. + var band = highlight!.Value; + var cell = host.Canvas.CellSize(); + var ink = new List(); + for (var x = 0; x < band.Right + cell.Width * 10; x++) + { + if (bitmap.GetPixel(x, band.Top + band.Height / 2).GetBrightness() > 0.6f) + { + ink.Add(x); + } + } + + // Which column the hit test gives for a press on the bar itself. + var hit = host.Canvas.PaneCellAt(new((ink.Min() + ink.Max()) / 2, band.Top + band.Height / 2)); + + Console.WriteLine( + $"cell {cell}, highlight x {band.Left}..{band.Right - 1}, bar ink x {ink.Min()}..{ink.Max()}, " + + $"hit test on the bar gives column {hit?.Column}"); + await Assert.That(ink).IsNotEmpty(); + await Assert.That(ink.Min()).IsGreaterThanOrEqualTo(band.Left); + await Assert.That(ink.Max()).IsLessThan(band.Right); + } + + /// + /// Ten image pairs drawn one after another, each accepted (received moved over + /// verified) before the next, and then a screen with no picture on it. Nothing needs more than + /// the two on screen. + /// + [Test] + public async Task EveryPictureEverDrawnStaysDecoded() + { + var directory = TempDirectory("deview-review-cache"); + using var host = new CanvasHost(); + for (var index = 0; index < 10; index++) + { + var received = Path.Combine(directory, $"Test{index}.received.png"); + var verified = Path.Combine(directory, $"Test{index}.verified.png"); + File.WriteAllBytes(received, SamplePng.Build(400, 300, 200, 40, 40)); + File.WriteAllBytes(verified, SamplePng.Build(400, 300, 40, 40, 200)); + var entry = QueueEntry.ForFiles(received, verified, FileSide.Read(received), FileSide.Read(verified)); + var state = ViewerSession.Resize( + ViewerSession.EnqueueFile(SessionState.Start(ViewerMode.File, columns, rows), entry), + columns, + rows); + host.Draw(ScreenBuilder.Build(state)); + File.Move(received, verified, true); + } + + host.Draw(ScreenBuilder.Build(ViewerSession.Resize(Fixtures.File(), columns, rows))); + var (count, bytes) = host.Canvas.CachedImages(); + Directory.Delete(directory, true); + Console.WriteLine($"{count} decoded pictures held, {bytes / 1024} KB of pixels, on a screen showing none"); + await Assert.That(count).IsLessThanOrEqualTo(2); + } + + /// + /// The default 1100 by 700 window at the common scales, through the canvas's own layout + /// code with the cell MonoFont measures at that scale and the chrome the form takes there: the + /// scrollbar's system width and the footer's LogicalToDeviceUnits(40). The window itself stays + /// 1100 by 700 device pixels, which is what ViewerForm's constructor asks for. + /// + [Test] + public async Task TheFirstWindowIsSizedForTheDisplay() + { + await Assert.That(ViewerForm.InitialClientSize(new(1100, 700), 96, new(1920, 1040))).IsEqualTo(new Size(1100, 700)); + await Assert.That(ViewerForm.InitialClientSize(new(1100, 700), 192, new(3840, 2100))).IsEqualTo(new Size(2200, 1400)); + // 1050 tall at 150% does not fit a 1080p working area, and is kept inside it + await Assert.That(ViewerForm.InitialClientSize(new(1100, 700), 144, new(1920, 1040))).IsEqualTo(new Size(1650, 936)); + } + + /// + /// The first window at the common scales, through the canvas's own layout code with the cell + /// MonoFont measures at that scale and the chrome the form takes there. At 1100 by 700 device + /// pixels a pane held 4 characters at 200%. + /// + [Test] + public async Task WhatTheFirstWindowHoldsAtEachScale() + { + using var font = MonoFont.Create(); + using var host = new CanvasHost(); + var screen = ScreenBuilder.Build(ViewerSession.Resize(Fixtures.Inline(Fixtures.Patch()), columns, rows)); + var report = new StringBuilder(); + var fewest = int.MaxValue; + foreach (var dpi in (int[]) [96, 120, 144, 192]) + { + using var bitmap = new Bitmap(1, 1); + bitmap.SetResolution(dpi, dpi); + using var graphics = Graphics.FromImage(bitmap); + var cell = MonoFont.Cell(graphics, font); + // Straight from user32: SystemInformation answers 17 at every DPI in an unaware host. + var bar = GetSystemMetricsForDpi(verticalScrollBarWidth, (uint) dpi); + var footer = 40 * dpi / 96; + var window = ViewerForm.InitialClientSize(new(1100, 700), dpi, new(3840, 2100)); + host.Resize(window.Width - bar, window.Height - footer); + typeof(ViewerCanvas).GetField("cell", BindingFlags.Instance | BindingFlags.NonPublic)!.SetValue(host.Canvas, cell); + host.Canvas.Draw(screen); + var (_, half, _) = host.Canvas.Panes(); + var characters = (half - 8 * cell.Width) / cell.Width; + fewest = Math.Min(fewest, characters); + report.AppendLine($"dpi {dpi}: cell {cell}, window {window}, {Layout(host.Canvas)}"); + } + + Console.WriteLine(report); + await Assert.That(fewest).IsGreaterThanOrEqualTo(30); + } + + static string Layout(ViewerCanvas canvas) + { + var cell = canvas.CellSize(); + var (left, half, width) = canvas.Panes(); + var text = half - 8 * cell.Width; + return $"canvas {canvas.Size}, cell {cell}, queue column {left} px, pane {half} px, text {text} px = {text / cell.Width} characters a pane, {canvas.BodyCapacity} body rows"; + } + + /// + /// Two presses of Down before the pump runs: both are real key messages, and both reach the + /// model, a frame each. One slot per kind of input kept only the last. + /// + [Test] + public async Task TwoKeysInOnePumpAreTwoCommands() + { + using var host = new FormHost(Fixtures.File(Lines(300, 3), Lines(300))); + host.Settle(); + var before = ScreenBuilder.Build(host.State).Left.ScrollTop; + + host.PostKey(Keys.Down); + host.PostKey(Keys.Down); + var first = host.Frame(); + // The second is waiting for the next frame, which does not wait for more input first + await Assert.That(host.Form.Pending).IsTrue(); + var second = host.Frame(); + + var after = ScreenBuilder.Build(host.State).Left.ScrollTop; + Console.WriteLine($"drained {first.Key} then {second.Key}; scroll top {before} -> {after}"); + await Assert.That(after - before).IsEqualTo(2); + } + + /// + /// d pressed while one entry is on screen, then a click on another row, both before the + /// pump runs. In the order they happened, the first entry is discarded and the second selected. + /// + [Test] + public async Task AKeyThenAClickInOnePumpAreAppliedInTheirOrder() + { + using var host = new FormHost( + Fixtures.Inline( + Fixtures.Patch("ATests.cs", 10, content: "one"), + Fixtures.Patch("BTests.cs", 20, content: "two"), + Fixtures.Patch("CTests.cs", 30, content: "three"))); + host.Settle(); + var onScreen = host.State.Current!.Key; + var clicked = host.State.Queue.Last(_ => _.Key != onScreen).Key; + + host.PostKey(Keys.D); + host.PostClick(host.QueueRowOf(clicked), right: false); + var input = host.Frame(); + + var left = host.State.Queue.Select(_ => _.Key).ToList(); + Console.WriteLine( + $"drained Key {input.Key}, ClickedQueueItem {input.ClickedQueueItem}; on screen at the key: {onScreen}; " + + $"clicked: {clicked}; still queued: {string.Join(" | ", left)}"); + await Assert.That(left).DoesNotContain(onScreen); + await Assert.That(left).Contains(clicked); + } + + /// + /// Right click a row, which opens its menu, then right click the same row again. + /// + [Test] + public async Task RightClickingTheRowWhoseMenuIsOpen() + { + using var host = new FormHost( + Fixtures.Inline( + Fixtures.Patch("ATests.cs", 10, content: "one"), + Fixtures.Patch("BTests.cs", 20, content: "two"))); + host.Settle(); + var row = host.QueueRowOf(host.State.Current!.Key); + var popup = Field(host.Form, "contextMenu"); + + host.PostClick(row, right: true); + host.Frame(); + host.Frame(); + var opened = $"first: model menu {host.State.Menu is not null}, popup {popup.Visible}"; + + host.PostClick(row, right: true); + host.Settle(); + var reopened = $"second: model menu {host.State.Menu is not null}, popup {popup.Visible}"; + + host.PostClick(row, right: true); + host.Settle(); + Console.WriteLine($"{opened}\n{reopened}\nthird: model menu {host.State.Menu is not null}, popup {popup.Visible}"); + await Assert.That(popup.Visible).IsEqualTo(host.State.Menu is not null); + } + + /// + /// Press on the scrollbar thumb, drag, hold, drag again, release half a second later: real mouse + /// messages, posted to the bar. The one DoEvents that dispatches the press does not return until + /// the release, because the bar tracks the thumb in a modal loop of its own - so the frames the + /// panes follow the thumb by have to come from inside it. + /// + /// A posted press alone is not enough: the bar looks at the button state and, finding it up, + /// ends the track at once. So this thread's own key state says the left button is down for the + /// length of the drag, which is what it says during a real one. Nothing outside this thread + /// sees that, and it is put back after. + /// + /// + [Test] + public async Task DraggingTheThumbStillRunsFrames() + { + var keys = new byte[256]; + GetKeyboardState(keys); + var saved = (byte[]) keys.Clone(); + keys[1] = 0x80; + SetKeyboardState(keys); + try + { + await DragTheThumb(); + } + finally + { + SetKeyboardState(saved); + } + } + + static async Task DragTheThumb() + { + using var host = new FormHost(Fixtures.File(Lines(400, 3), Lines(400))); + host.Settle(); + var bar = Field(host.Form, "scrollBar"); + var info = new ScrollBarInfo + { + Size = Marshal.SizeOf() + }; + GetScrollBarInfo(bar.Handle, objectClient, ref info); + var x = bar.Width / 2; + var y = (info.ThumbTop + info.ThumbBottom) / 2; + + var clock = Stopwatch.StartNew(); + var scrolls = new List(); + bar.Scroll += (_, e) => scrolls.Add($"{e.Type} {e.NewValue} at {clock.ElapsedMilliseconds}ms"); + var filtered = 0; + HookProc filter = (code, wParam, lParam) => + { + if (code == messageFilterScrollBar) + { + filtered++; + } + + return CallNextHookEx(IntPtr.Zero, code, wParam, lParam); + }; + var hook = SetWindowsHookEx(messageFilterHook, filter, IntPtr.Zero, GetCurrentThreadId()); + var tops = new List(); + host.Form.Frame = () => + { + host.Apply(host.Form.Drain()); + var screen = ScreenBuilder.Build(host.State); + tops.Add(screen.Left.ScrollTop); + return screen; + }; + var handle = bar.Handle; + var done = false; + var release = new Thread(() => + { + Thread.Sleep(500); + PostMessage(handle, mouseMove, leftButtonFlag, Point(x, y + 80)); + Thread.Sleep(50); + PostMessage(handle, leftButtonUp, IntPtr.Zero, Point(x, y + 80)); + // Only if the bar never let go, so a failure here cannot hang the run. + for (var wait = 0; wait < 60 && !Volatile.Read(ref done); wait++) + { + Thread.Sleep(50); + } + + if (!Volatile.Read(ref done)) + { + PostMessage(handle, leftButtonUp, IntPtr.Zero, Point(x, y + 80)); + PostMessage(handle, cancelMode, IntPtr.Zero, IntPtr.Zero); + } + }) + { + IsBackground = true + }; + + long pumped; + try + { + PostMessage(handle, leftButtonDown, leftButtonFlag, Point(x, y)); + PostMessage(handle, mouseMove, leftButtonFlag, Point(x, y + 40)); + release.Start(); + var pump = Stopwatch.StartNew(); + Application.DoEvents(); + pumped = pump.ElapsedMilliseconds; + } + finally + { + Volatile.Write(ref done, true); + release.Join(); + UnhookWindowsHookEx(hook); + GC.KeepAlive(filter); + } + + Console.WriteLine( + $"one DoEvents took {pumped}ms; scroll bar's own loop filtered {filtered} messages; " + + $"Scroll events: {string.Join(", ", scrolls)}; frames during it: {tops.Count}, scroll tops {string.Join(" ", tops.Distinct())}"); + await Assert.That(tops.Count).IsGreaterThan(5); + await Assert.That(tops.Max()).IsGreaterThan(0); + } + + /// + /// A press in a pane, then the capture goes elsewhere, as it does when another window + /// takes the mouse, and the button comes up somewhere the canvas never hears about. Then the + /// pointer comes back over the pane with no button down. + /// + [Test] + public async Task LosingCaptureMidDragEndsTheDrag() + { + using var host = new CanvasHost(); + host.Draw(ScreenBuilder.Build(ViewerSession.Resize(Fixtures.File(Lines(60, 3), Lines(60)), columns, rows))); + var canvas = host.Canvas; + var cell = canvas.CellSize(); + var textLeft = canvas.Panes().Left + 8 * cell.Width; + var press = new Point(textLeft + 2 * cell.Width, canvas.BodyTop() + cell.Height / 2); + var later = new Point(textLeft + 20 * cell.Width, canvas.BodyTop() + 5 * cell.Height + cell.Height / 2); + + SendMessage(canvas.Handle, leftButtonDown, leftButtonFlag, Point(press.X, press.Y)); + var captured = canvas.Capture; + + using var other = new Form + { + StartPosition = FormStartPosition.Manual, + Location = new(-4000, -2000), + ShowInTaskbar = false + }; + other.Show(); + other.Capture = true; + other.Capture = false; + var capturedAfter = canvas.Capture; + + SendMessage(canvas.Handle, mouseMove, IntPtr.Zero, Point(later.X, later.Y)); + var first = canvas.TakeDrag(); + var second = canvas.TakeDrag(); + Console.WriteLine( + $"captured on press {captured}, after the loss {capturedAfter}; selecting still {Field(canvas, "selecting")}; " + + $"a move with no button reported {first}; the next frame reported {second}"); + await Assert.That(second).IsNull(); + } + + /// + /// the splitter: the same loss while dragging the rule between the queue and the panes. + /// + [Test] + public async Task LosingCaptureMidSplitterDragEndsTheDrag() + { + using var host = new CanvasHost(); + host.Draw(ScreenBuilder.Build(ViewerSession.Resize(Fixtures.Inline(Fixtures.Patch()), columns, rows))); + var canvas = host.Canvas; + var splitter = canvas.Panes().Left - 2; + var y = canvas.BodyTop() + 40; + + SendMessage(canvas.Handle, leftButtonDown, leftButtonFlag, Point(splitter, y)); + using var other = new Form + { + StartPosition = FormStartPosition.Manual, + Location = new(-4000, -2000), + ShowInTaskbar = false + }; + other.Show(); + other.Capture = true; + other.Capture = false; + + var before = canvas.Panes().Left; + SendMessage(canvas.Handle, mouseMove, IntPtr.Zero, Point(splitter + 200, y)); + var after = canvas.Panes().Left; + Console.WriteLine($"dragging still {Field(canvas, "dragging")}; queue column edge {before} -> {after} on a move with no button"); + await Assert.That(after).IsEqualTo(before); + } + + /// + /// The real loop, ViewerProgram.Run, over a real hidden window, sent the two + /// messages a logoff sends, from another thread as the system sends them. What matters is what + /// had happened by the time WM_ENDSESSION returned, since the session may end from then on. + /// is the first thing Run's finally sets, before it persists. + /// + [Test] + public async Task EndSessionReturnsBeforeTheLoopHasStartedToPersist() + { + var host = new SessionHost(Fixtures.File()); + var handle = IntPtr.Zero; + ViewerForm? form = null; + OpenWindow open = (string title, int width, int height, bool hidden, out string? error) => + { + var window = FormsViewerWindow.Open(title, width, height, true, out error); + form = Field(window!, "form"); + handle = form.Handle; + return window; + }; + + var clock = Stopwatch.StartNew(); + var query = IntPtr.Zero; + var end = IntPtr.Zero; + long endReturnedAt = 0; + var disposedAtReturn = false; + var closingAtReturn = true; + var sender = new Thread(() => + { + while (handle == IntPtr.Zero) + { + Thread.Sleep(10); + } + + Thread.Sleep(200); + query = SendMessage(handle, queryEndSession, IntPtr.Zero, endSessionLogoff); + end = SendMessage(handle, endSession, new(1), endSessionLogoff); + endReturnedAt = clock.ElapsedMilliseconds; + closingAtReturn = host.State.Closing; + disposedAtReturn = form!.IsDisposed; + }) + { + IsBackground = true + }; + sender.Start(); + + var code = ViewerProgram.Run(host, null, null, open); + var runReturnedAt = clock.ElapsedMilliseconds; + sender.Join(); + + Console.WriteLine( + $"WM_QUERYENDSESSION answered {query}; WM_ENDSESSION returned {end} at {endReturnedAt}ms with the form disposed " + + $"{disposedAtReturn} and Run's finally started {closingAtReturn}; Run returned {code} at {runReturnedAt}ms"); + await Assert.That(query).IsEqualTo(new IntPtr(1)); + await Assert.That(closingAtReturn).IsTrue(); + } + + static string Lines(int count, int changedAt = -1) + { + var builder = new StringBuilder(); + for (var index = 1; index <= count; index++) + { + if (index > 1) + { + builder.Append('\n'); + } + + builder.Append($"line {index}"); + if (index == changedAt) + { + builder.Append(" changed"); + } + } + + return builder.ToString(); + } + + static string TempDirectory(string name) + { + var path = Path.Combine(Path.GetTempPath(), name); + Directory.CreateDirectory(path); + return path; + } + + static T Field(object target, string name) => + (T) target.GetType().GetField(name, BindingFlags.Instance | BindingFlags.NonPublic)!.GetValue(target)!; + + static (int Cell, float Advance) Measure(Font font, int dpi) + { + if (dpi == 96) + { + // The host is DPI unaware, so a screen Graphics here is exactly 96. + using var screen = Graphics.FromHwnd(IntPtr.Zero); + return Measure(screen, font); + } + + // Per monitor on this thread only, for long enough to get a screen Graphics at the real + // system DPI. Other scales than the machine's come from a bitmap at that resolution. + var previous = SetThreadDpiAwarenessContext(perMonitorV2); + try + { + using var screen = Graphics.FromHwnd(IntPtr.Zero); + if ((int) screen.DpiX == dpi) + { + return Measure(screen, font); + } + } + finally + { + SetThreadDpiAwarenessContext(previous); + } + + using var bitmap = new Bitmap(1, 1); + bitmap.SetResolution(dpi, dpi); + using var graphics = Graphics.FromImage(bitmap); + return Measure(graphics, font); + } + + static (int Cell, float Advance) Measure(Graphics graphics, Font font) => + (MonoFont.Cell(graphics, font).Width, MonoFont.Advance(graphics, font)); + + /// + /// The horizontal centre of each of bars drawn as one string. + /// + static double[] DrawnBars(Font font, int dpi, int count) + { + using var bitmap = new Bitmap(2600, 80); + bitmap.SetResolution(dpi, dpi); + using (var graphics = Graphics.FromImage(bitmap)) + { + graphics.Clear(Color.White); + Painter.Prepare(graphics); + Painter.Draw(graphics, new('|', count), font, Color.Black, new(10, 10, 2580, 60)); + } + + var profile = new double[bitmap.Width]; + for (var x = 0; x < bitmap.Width; x++) + { + for (var y = 0; y < bitmap.Height; y++) + { + profile[x] += 255 - bitmap.GetPixel(x, y).R; + } + } + + var centres = new List(); + var start = -1; + for (var x = 0; x <= profile.Length; x++) + { + var inked = x < profile.Length && profile[x] > 0; + if (inked && start < 0) + { + start = x; + } + else if (!inked && start >= 0) + { + double weight = 0; + double moment = 0; + for (var column = start; column < x; column++) + { + weight += profile[column]; + moment += profile[column] * column; + } + + centres.Add(moment / weight); + start = -1; + } + } + + if (centres.Count != count) + { + throw new($"Expected {count} bars at {dpi} dpi, found {centres.Count}"); + } + + return centres.ToArray(); + } + + static Rectangle? Bounds(Bitmap bitmap, Func match) + { + int left = int.MaxValue, top = int.MaxValue, right = -1, bottom = -1; + for (var y = 0; y < bitmap.Height; y++) + { + for (var x = 0; x < bitmap.Width; x++) + { + if (!match(bitmap.GetPixel(x, y))) + { + continue; + } + + left = Math.Min(left, x); + top = Math.Min(top, y); + right = Math.Max(right, x); + bottom = Math.Max(bottom, y); + } + } + + if (right < 0) + { + return null; + } + + return Rectangle.FromLTRB(left, top, right + 1, bottom + 1); + } + + static IntPtr Point(int x, int y) => + new((y << 16) | (x & 0xFFFF)); + + static readonly IntPtr perMonitorV2 = new(-4); + const int keyDown = 0x0100; + const int keyUp = 0x0101; + const int mouseMove = 0x0200; + const int leftButtonDown = 0x0201; + const int leftButtonUp = 0x0202; + const int rightButtonDown = 0x0204; + const int rightButtonUp = 0x0205; + const int cancelMode = 0x001F; + const int queryEndSession = 0x0011; + const int endSession = 0x0016; + static readonly IntPtr endSessionLogoff = new(unchecked((int) 0x80000000)); + static readonly IntPtr leftButtonFlag = new(1); + static readonly IntPtr rightButtonFlag = new(2); + const int messageFilterHook = -1; + const int messageFilterScrollBar = 5; + const int objectClient = unchecked((int) 0xFFFFFFFC); + + delegate IntPtr HookProc(int code, IntPtr wParam, IntPtr lParam); + + [StructLayout(LayoutKind.Sequential)] + struct ScrollBarInfo + { + public int Size; + public int BarLeft; + public int BarTop; + public int BarRight; + public int BarBottom; + public int LineButton; + public int ThumbTop; + public int ThumbBottom; + public int Reserved; + public int State0; + public int State1; + public int State2; + public int State3; + public int State4; + public int State5; + } + + [DllImport("user32.dll")] + static extern IntPtr SetThreadDpiAwarenessContext(IntPtr context); + + const int verticalScrollBarWidth = 2; + + [DllImport("user32.dll")] + static extern int GetSystemMetricsForDpi(int index, uint dpi); + + [DllImport("user32.dll")] + static extern bool GetKeyboardState(byte[] state); + + [DllImport("user32.dll")] + static extern bool SetKeyboardState(byte[] state); + + [DllImport("user32.dll")] + static extern bool PostMessage(IntPtr window, int message, IntPtr wParam, IntPtr lParam); + + [DllImport("user32.dll")] + static extern IntPtr SendMessage(IntPtr window, int message, IntPtr wParam, IntPtr lParam); + + [DllImport("user32.dll")] + static extern IntPtr SetWindowsHookEx(int hook, HookProc procedure, IntPtr module, uint thread); + + [DllImport("user32.dll")] + static extern bool UnhookWindowsHookEx(IntPtr hook); + + [DllImport("user32.dll")] + static extern IntPtr CallNextHookEx(IntPtr hook, int code, IntPtr wParam, IntPtr lParam); + + [DllImport("kernel32.dll")] + static extern uint GetCurrentThreadId(); + + [DllImport("user32.dll")] + static extern bool GetScrollBarInfo(IntPtr window, int objectId, ref ScrollBarInfo info); + + /// + /// A canvas in a real window, parked off screen and out of the taskbar, as PaneHitTests hosts + /// one. + /// + sealed class CanvasHost : IDisposable + { + readonly Form form = new() + { + StartPosition = FormStartPosition.Manual, + Location = new(-4000, -2000), + ShowInTaskbar = false + }; + + readonly List bitmaps = []; + + public ViewerCanvas Canvas { get; } = new() + { + Dock = DockStyle.Fill + }; + + public CanvasHost(int width = 1100, int height = 700) + { + form.ClientSize = new(width, height); + form.Controls.Add(Canvas); + form.Show(); + } + + public void Resize(int width, int height) => + form.ClientSize = new(width, height); + + public Bitmap Draw(Screen screen) + { + Canvas.Draw(screen); + Canvas.Refresh(); + var bitmap = new Bitmap(Canvas.Width, Canvas.Height); + Canvas.DrawToBitmap(bitmap, new(0, 0, Canvas.Width, Canvas.Height)); + bitmaps.Add(bitmap); + return bitmap; + } + + public void Dispose() + { + foreach (var bitmap in bitmaps) + { + bitmap.Dispose(); + } + + form.Dispose(); + } + } + + /// + /// A real driven one frame at a time the way ViewerProgram.Loop drives + /// it, minus the session lock: Apply the screen, DoEvents, Drain, and hand the input to the + /// same ViewerProgram.Apply the loop calls. + /// + sealed class FormHost : IDisposable + { + readonly IViewerWindow window = new NoWindow(); + + public FormHost(SessionState state) + { + State = state; + Form = new("DiffEngineViewer", 1100, 700) + { + StartPosition = FormStartPosition.Manual, + Location = new(-4000, -2000), + ShowInTaskbar = false + }; + Form.Show(); + Canvas = Field(Form, "canvas"); + } + + public ViewerForm Form { get; } + + public ViewerCanvas Canvas { get; } + + public SessionState State { get; private set; } + + public ViewerInput Frame() + { + Form.Apply(ScreenBuilder.Build(State)); + Application.DoEvents(); + var input = Form.Drain(); + Apply(input); + return input; + } + + public void Apply(ViewerInput input) + { + if (!ViewerProgram.IsIdle(input, State)) + { + State = ViewerProgram.Apply(State, input, null, window); + } + } + + /// + /// Until the model holds the grid the canvas reports. + /// + public void Settle() + { + for (var index = 0; index < 3; index++) + { + Frame(); + } + } + + public int QueueRowOf(string key) + { + var entry = -1; + for (var index = 0; index < State.Queue.Count; index++) + { + if (State.Queue[index].Key == key) + { + entry = index; + } + } + + var items = ScreenBuilder.Build(State).Queue; + for (var row = 0; row < items.Count; row++) + { + if (items[row].EntryIndex == entry) + { + return row; + } + } + + throw new($"No queue row for {key}"); + } + + public void PostKey(Keys key) + { + PostMessage(Canvas.Handle, keyDown, new((int) key), new(1)); + PostMessage(Canvas.Handle, keyUp, new((int) key), new(unchecked((int) 0xC0000001))); + } + + public void PostClick(int queueRow, bool right) + { + var cell = Canvas.CellSize(); + var at = Point(6 + cell.Width * 2, Canvas.BodyTop() + queueRow * cell.Height + cell.Height / 2); + if (right) + { + PostMessage(Canvas.Handle, rightButtonDown, rightButtonFlag, at); + PostMessage(Canvas.Handle, rightButtonUp, IntPtr.Zero, at); + return; + } + + PostMessage(Canvas.Handle, leftButtonDown, leftButtonFlag, at); + PostMessage(Canvas.Handle, leftButtonUp, IntPtr.Zero, at); + } + + public void Dispose() => + Form.Dispose(); + } + + sealed class NoWindow : IViewerWindow + { + public bool Present(Screen screen) => true; + + public ViewerInput Poll() => default; + + public void SetHidden(bool hidden) + { + } + + public void SetClipboard(string text) + { + } + + public void Focus() + { + } + + public bool Capture(Screen screen, int width, int height, string pngPath) => false; + + public void Dispose() + { + } + } +} + +static class CanvasReflection +{ + const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic; + + public static Size CellSize(this ViewerCanvas canvas) => + (Size) typeof(ViewerCanvas).GetProperty("Cell", flags)!.GetValue(canvas)!; + + public static int BodyTop(this ViewerCanvas canvas) => + (int) typeof(ViewerCanvas).GetProperty("BodyTop", flags)!.GetValue(canvas)!; + + public static (int Left, int Half, int Width) Panes(this ViewerCanvas canvas) => + ((int, int, int)) typeof(ViewerCanvas).GetMethod("Panes", flags)!.Invoke(canvas, null)!; + + public static (int Count, long Bytes) CachedImages(this ViewerCanvas canvas) + { + var cache = typeof(ViewerCanvas).GetField("images", flags)!.GetValue(canvas)!; + var entries = (IDictionary) typeof(ImageCache).GetField("entries", flags)!.GetValue(cache)!; + long bytes = 0; + foreach (var entry in entries.Values) + { + if (entry.GetType().GetProperty("Image")!.GetValue(entry) is Image image) + { + bytes += (long) image.Width * image.Height * Image.GetPixelFormatSize(image.PixelFormat) / 8; + } + } + + return (entries.Count, bytes); + } +} diff --git a/src/DiffEngineViewer.Windows.Tests/ImageCacheTests.cs b/src/DiffEngineViewer.Windows.Tests/ImageCacheTests.cs index 3368735a..843177f6 100644 --- a/src/DiffEngineViewer.Windows.Tests/ImageCacheTests.cs +++ b/src/DiffEngineViewer.Windows.Tests/ImageCacheTests.cs @@ -14,11 +14,11 @@ public async Task DecodesOnceAndKeepsIt() var path = Write("decoded.png", SamplePng.Build(8, 6, 200, 40, 40)); using var cache = new ImageCache(); - var first = cache.Get(path); + var first = cache.Get(path, null); await Assert.That(first).IsNotNull(); await Assert.That(first!.Width).IsEqualTo(8); await Assert.That(first.Height).IsEqualTo(6); - await Assert.That(ReferenceEquals(cache.Get(path), first)).IsTrue(); + await Assert.That(ReferenceEquals(cache.Get(path, null), first)).IsTrue(); } /// @@ -31,7 +31,7 @@ public async Task LeavesNoHandleOnTheFile() { var path = Write("copied-over.png", SamplePng.Build(8, 6, 200, 40, 40)); using var cache = new ImageCache(); - await Assert.That(cache.Get(path)).IsNotNull(); + await Assert.That(cache.Get(path, null)).IsNotNull(); var replacement = Write("replacement.png", SamplePng.Build(4, 4, 40, 200, 40)); File.Copy(replacement, path, true); @@ -46,12 +46,12 @@ public async Task RedecodesWhenTheFileChanges() { var path = Write("rewritten.png", SamplePng.Build(8, 6, 200, 40, 40)); using var cache = new ImageCache(); - await Assert.That(cache.Get(path)!.Width).IsEqualTo(8); + await Assert.That(cache.Get(path, null)!.Width).IsEqualTo(8); // A different size, so the change is visible whatever the file system's timestamp // resolution turns out to be. await File.WriteAllBytesAsync(path, SamplePng.Build(4, 4, 40, 200, 40)); - await Assert.That(cache.Get(path)!.Width).IsEqualTo(4); + await Assert.That(cache.Get(path, null)!.Width).IsEqualTo(4); } /// @@ -64,15 +64,15 @@ public async Task RemembersAFailure() var path = Write("notreally.png", "the quick brown fox"u8.ToArray()); using var cache = new ImageCache(); - await Assert.That(cache.Get(path)).IsNull(); - await Assert.That(cache.Get(path)).IsNull(); + await Assert.That(cache.Get(path, null)).IsNull(); + await Assert.That(cache.Get(path, null)).IsNull(); } [Test] public async Task MissingFile() { using var cache = new ImageCache(); - await Assert.That(cache.Get(Path.Combine(Directory(), "gone.png"))).IsNull(); + await Assert.That(cache.Get(Path.Combine(Directory(), "gone.png"), null)).IsNull(); } static string Write(string name, byte[] content) @@ -88,4 +88,41 @@ static string Directory() System.IO.Directory.CreateDirectory(path); return path; } + + /// + /// A picture rewritten with different pixels at the same length and + /// the same write time, which is what a rewrite inside the file system's timestamp granularity + /// looks like to a stat. The model's hash sees it. + /// + [Test] + public async Task ARewriteWithTheSameStampKeepsTheOldPicture() + { + var path = Path.Combine(Directory(), "Same.received.png"); + File.WriteAllBytes(path, SamplePng.Build(8, 6, 200, 40, 40)); + var stamp = File.GetLastWriteTimeUtc(path); + using var cache = new ImageCache(); + var before = ((Bitmap) cache.Get(path, FileSide.Read(path).Image!.Value.Hash)!).GetPixel(0, 0); + var hashBefore = FileSide.Read(path).Image!.Value.Hash; + + File.WriteAllBytes(path, SamplePng.Build(8, 6, 40, 200, 40)); + File.SetLastWriteTimeUtc(path, stamp); + var hashAfter = FileSide.Read(path).Image!.Value.Hash; + var after = ((Bitmap) cache.Get(path, hashAfter)!).GetPixel(0, 0); + + // How often two writes in a row land on one stamp here, for how reachable that is. + var ticks = new List(); + for (var index = 0; index < 200; index++) + { + File.WriteAllBytes(path, [(byte) index]); + ticks.Add(File.GetLastWriteTimeUtc(path).Ticks); + } + + var repeats = ticks.Zip(ticks.Skip(1)).Count(_ => _.First == _.Second); + var smallest = ticks.Zip(ticks.Skip(1)).Select(_ => _.Second - _.First).Where(_ => _ > 0).DefaultIfEmpty(0).Min(); + File.Delete(path); + Console.WriteLine( + $"hash changed {hashBefore != hashAfter}; pixel before {before}, after {after}; " + + $"back to back writes on this volume: {repeats} of 199 kept the stamp, smallest step {smallest / 10}us"); + await Assert.That(after.ToArgb()).IsNotEqualTo(before.ToArgb()); + } } diff --git a/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.FileDiff.verified.png b/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.FileDiff.verified.png index b6eb6961930157a2aaba3130e1d5fbfffab10b66..f04d02b8d379842f02b8bd5e373e9b879956651a 100644 GIT binary patch literal 19731 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 diff --git a/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.GroupedConflictedQueue.verified.png b/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.GroupedConflictedQueue.verified.png index 7b33bff7935a611b03996f5e5dbbe2f7357a5d7a..c7719a242cd63aa4a797a5a8a498a4fb93124db4 100644 GIT binary patch literal 26482 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 literal 26485 zcmeFZcU+TM*EWhEqR7BJ<5*CNj*6Wkqx8hC2#Nxt)ZidQX+a>gkOX9q@sXmU6cHkV zB2pqmLQR4)LqtlH7D9mF1OyU7Xh|R;$=QH2&pYq;o!|M+`OZ0i`G-I5#N78TYwvYk zYprYFcP^Yi{hjJ&RRslw@2t<9uvbu6X{(^1Shso=_(pJiZzlM&BES^>n}eUv(@r1y6W6|v`H^@ z&F*7Qcd7prI~e)&gz5Jmk1U+gQ0(6FG0zbH>>YkW+V3GKsh}|gqV7V$*q7s7&L|v- z?u_Jycgwm5Bn#QFxpQ{ox2*-m9RqC;8z~$u2YjZcX71x2w!HZ3kY;*NhdN3*H zvccSB0yH{ke$-1>(({~G#_PbzW*J!sa%3SXy(^=8T0|C+($hdsivN`Iv2sQco*Y#u z&CtM1#=&vo&Vn4t`_qu%8`+MMLaDc;P!lE^Me|Xt=SYN2a=1Qpha@sv<^!5mQA)*0 z$Kh}UMJk+sD^A^I*QQISdq7t0s2HzhNhh*b=~cA$(%k(eCtrP^?{PWFRbSE;P7V>W zb>(x>&eHw9B(+k|d#9;xS41{xrp;nRWvF`m-jo74+0W0S`g|!&Vn!U;^M3HNA579a z?^kU|5^D8V>+r7KzK5Jm-7J{?IE-6%n+~aZT$2bQcPPM0!Vy$t7pPHlk z$2+$5vkr2bb7aY{(0=}Blc<;4HjU9A@s|3dqJeaCQTap|?vgcbLAYJPt51gXgL|bb zP+^0tbj~cV_Vto zJ&_TwNSfIH<4c0U-rqMdIa3jF9qRUtNMA~1_aC{&ZfEt2_#w5_P%QOG0r6t)8R!6$ z6+Ehz>T+0EO>QF^y~4fi*$8a*XqI%coTQXGm3Ysb{8)K=f?}#00`w`?8aiRTtq~1B z(!SzsAQ#dlV_s^=BLD1TS(M*cc`Q$ivCMkG|5rx}+^dRuPMr0bigep!Sh)2nHwLrM zu+Vdx!M;MO*WgFyfT~w-ZvC~oo1Fbmdi=r~Pp{HMNl>-{UY1He8-7pR+ro&Ff;rk} zx*{9YPn&^c7RHW=+6;Hr<>t zq`9T*a4n1q8d#WpqORQN`LvQL4$kQ7&aKZE9SSUH`@PEd<$ZJ(gULE>zOacpeZjL` z(lQA)x984+A2SkTkBWv*uF@-M$YKnib$ul_^KpgVExB1+%3W%r%HFd*fIa-Pmt_CX z8OnM)X^w?bM^wDl`XepEko|^*#x@)?^eP*b&D8_jP>QML1(bx&5L65CR=!j2*%Av^ z;7(sZD2bbOHa+OK&tR|N9#@mIBm{vT^!~1z?T1T}tk0*#1gL}%!oaZWuWd;5uL!^L zfJbe47v~jgZTR@P&myN(Dh{Fj14z1M5xJ;>VAJ^{mI z#nkA5yB9<{h4lL-@DiE(FnOz>SKa-Aaqs3ztH2_#&+@S|2w7{jKPAkweZ}wlulK0h z`k0`3l4rAQbDQmPw_J810(;>uEsFPKLyvDd<8e}6^Hm=>ZoGPoJ0MFtZh}6i{dg#> z2uEms3e4q1SbwVJ-F;`*LewvP-k$9#RHX$@cmV(8ldJaV!ju&gRIA&U$C}Hs$jQXU z06cRPaa(uHNilWm1zu`O=OW>;P2*ni#=no+-5o{(5X^k znAo$9NDqjdY4_OGaNn5;nn-c44!Z1vF2q+47>NXB?KucWL~FwVgzy{EEQlp`BYCtXec<5K^d zMMG>+(F4y=D9~$2*|7veX{n!2|FDEj%}tZr*8m_^h#9^%cYo#L@9KjOE}U6HAWt(* z%#I~kdi_KV`d|sGuAINEYrO zE_zPKYD5o?7Xh48##3bC=Yol|JU=335zm=6_ zliS-5H3~Ktp$}WDbWi@o>2*r#&+~QfdJ|<=)oeYNYg7p7lyMJrnhPp)U;=5O7$%9F z9%`xLc* zPTuin0u)$kndh=toF@j96egmRSvoSUOIb&exTAwCup_? zkck2V9^5j%R_so^mFOk3Z7YIG>CJB4KB-}Yft`G3`2?b?B-lR^;m0>8u=rlc65pQv zPfJI<(H7k-uR~$@(i_!s4`P9OdWlSU_$;r0wzbLVi2&Ojc7{UpmW-3|oqmPh^C5~l zrDZRM_!GsA!ktm>>B2TIRDbcMyj~yrXSV{J>!IR?KT9x(E?StYKxeSid+t71QiV45 zdreq{?4gu8XtAUB8DMM;u8_sgtS=+eg=N>JHT^}lrEClFR}%L?w{5mFl`2{y=>`HjEvH%3|OTT>j2B%2{VrLBoMwRAMvX16LTS zd+jH>0_B>qEyL_ce6#>%*QOy_rI)~gSGPuK1aX#aF?)j4F{dwceou8stDQ_iY&I)w zy@TMxi>lz1v!d|6!1Lp9tadTlpEq)kG1t;*&ilASQX^F;)x*+j24*wAM{!)b>R&l~ zxfcbrb!&>;Q)cj)0Zw*4pU=?C21GeBkBUYed*)^?=enKtKnE+0xw*^lvLIq1 zQ_Faj-l0+{!c$1No*-Unx!)N|(0N3z!~34@8Y#9zeJMk6&|Ot!ZNpD$w82*5j07xh zlXS369@Xco-rUu9DTexUT`y;9t}drV#I`ietQcmO5D#ayv?(U~XOY$jPFRR;+6JO* z4j4!`j+Qhn?)lQY3`nvSQR~D5DNxqM0dWXv!8lbkCnh!LhM@g`WEoLB`SK6w@*|cKMaUx>pkF3 z`GfD76!alP-xQf<+U!$I7OHB1D(Y6$8ggXs8Dp0H}z|ex*T_{xP##(N7MJG3r zX*OF|64j2K(xPvX{}kCTYwHzebbUHpbQd&CDe3i%B&Mt866Au2uooZFCS1{cwRI70 zViBtNkUM2sRC_!@ZTp8}CosGyN@bYV;tazl!i&E1R0bZ}b&c)xIq#qM^_9>w*N^!( zQ(XfBy7A6fLV!@O6X9E(;uXw9X+;q%XQN`74iva6C1JP*c|c%Zourn-bh6Uqr~hoB z4Hipw1@9uW)x6gSX~Y!HR%*Y>tk_Qt4y%!F>#y{u(eE`Af$6oRl5FIQ#6xdF-SbD) z3VOs?N$C<_o^ReAWF@E#yWSqvU*lA<)u74j4ere)yR*_R!g+ovZy0t2&ty3>bs`&^ zcl%8g2iRemxk`!7R{g5BuQrUJ70-$eFlP=8l{1Jj3Eo_h1#-8$AkUyxGo9w^P2?4d z2vK3#Ho@fvd;Yd+wu&Bs64rgX|6?qm#z`V1H&v_B$7yIuy%yd6YVDB_;VLSq)vdVp&wZ zWK=&SF}=v`frBKgt4Ak+ac-+^DvL059}0f#g8P=rF78mi2^~QD`R?*!KLV0K(&qBZHlx;CP2qbZi@&t> zekhX>btpOwHyN8^XpNPZu<)x*RdphxqOL9qW5xHAlgRHLOEH(--`BKrMK#(F!z8(n zk;OWfTb#kEc9x8>0D_bqO4sh7 z1?Vmesu+}nZ1g}2x(FhQT$ z8O~E-bH6jvF%sP;(k}(_Jey{ZhgflU0)TlPxj;91$c?Df_q*3>Tb;8cdGAJOsE{R{ zkq_BR_Ea@V97utDyC9d~2^IiFjh_q)l>~S+&u>J9jlAH&O82E9D-&azEckUH?4Vq+ zeL33k?NJ`LC(1+s*dRX|I{e~u3m34&=;+3&68^puW4NQ}R@_lR9uB(JaqwYwu;(pT(BX;pBHi7&*Rwx=3E)tJStH-tiL$t^AWK za^Yin!h{~*PEaGNgRamxy)=_!M_1}0(@tp@i`b9|ywEK?MFLzFu8Ud=VLzj--ea<6 z?<>4(u8s1x`6xdu;ilyqZPQByn==wqN5ps8=yOj+HBHVxDXtsTf8y&o{fr~cy)g8( z9mRE~e;Mar8Ff>QThi6L_ic)pA5J%TGrV)VEBvXyvK|s37oA>0gxEY+`ZvZh5U=>4 z4870Lteb@iL?DRg3k~xcUv`SBqw!HzxcL^ieg&9BL!S-L-k3{<^w6;hUmTTEAMdBH ztkG*1NI`!na|{X=a&^Bz+Ff3LXj_S3U>*+9*ttDmpW&Fz^~RX( z%+k#n{@L+m1(XVwFMex&q+=lhsp**3u6$Sc9YDwHT)MeZid?vFge5ZX67pr~*yyX-QRnTVmG$b8 zz$n2ifoyMVlUxj4Xjm(Vs53dEyxO^$J9Q~8zW2)&t{<)+?*g%48Zw1-P$agw3TL#M zGm=6p620cQ25S7*0oho*8ckQ#@PWGwd0TjM%d@jq>hUgIxyNl4RuoXQGiKS&FE6q` z2K3X9zim$|p;tc_S!`k1vwXDpy9Wld;POuo`X zH++lUqvyBM9=i$IkDn&5W3{Kw-n7roJ=?U#sD7K5=d%G_dhQuwN^_&wHTUfm5mzm# zY#=?#jaN-N?wchT_>@vBgzYrc3?P9aP(?W|_*C0U_M#*c&h4#>EH)ZmTM2`9Pq_Wv_tW?C$^_<>jzL|L zR_~LZ@4Px&TQ_!1#NMI6Ivh4nzgwJ=<&7tsUGF?K13S%dj9&bew|;1zzegc?~R zJdOmDR8pUxXwvI^P5&;>77*ewTmZ>Xm| z>oT+Z`9W77yp_Nl1(E7uAwit;f*1HaFax3?V`ioQxig}Hh8;Kyza{$=M0LEKWa%b2D-PM!96m%y%MQsbD)S| zC1xkijHk6_|TX~b0D*`I%P9MD{F|yJp7;%j+H`254wLDUt z%K4_kReA!WRHSO;d@ppqWQNr$j!G|hM1wd*EbRW{@$cQ&4#wR(czg5u(9YlA^l~NY zc2V>DwK6M^DD28>6DppeuVS0-z7##DJsnL^pLp!v>=S!}*a~r)GynXqEM>huK~$hN zmqLOLQ&nkVCeKSw9KgjSZ2Q~n_9|1_Ct5&jeDeUcL(@+wi2bhW=o1KKMMA(3@wDc& z76(xQA2lR)h4@@;bCMWo|LHjRKw>rfxKY4S%Z!Q}2w|u{c|iR>Bfs{^5&E_2U72QM z+Pm_{F5J5xYke+wX0r(7+tvgo7*K^u#XO^xdSm)rw5A_stUjMBt(qt#Zmnd zusqHMMET8TieLVLC zHl+}lRX;QZYAmSXr6mWLmtyM1U({@U3M`fSlw+INMzs%DdFm}q7a&XEm-|8O<#o;z zN#zowIs!hZftI3{x3S{77(i}NSU!Kn%A% z0TL?2LnVwEkP9;!rPFn|+?6>Ws-_6`QZp>%#fc1a=^e*h#5mn5M*9lfI}KfIM5JP$cH!VRL6jRc&hUQo>7C z>Xg?DKWUVQ6?Vf*%Tr)d4m|-BX_)R|fkns~XjqvWTK?P)Gu<9l`MK#dG)l;)2uc=v z)_KX)9?wJJ?T7 zb|wko=BuKEUovQWo~kVeKNR^hC=b@MOO0TNEU4VLp;&> zw_w-C`XN``-0zX^CwGCO+zk@MB5yJDY0Cm*xf*GuBkG_vHOKg3wR;>$N)5^iQw7T#^lF~GmhC0^u)UbvWI z@$1VY&l>KkYIEkbPdTCz_KFjbr)bbd096Z}aMomKIM^Keibd0zdz>caupP-{{=vZ~(bK~5Ts6M#Y zEQTXdKNf{r?>MWe2bkVr^Zcq0JC9fNs~?SmmNcY*puDS66~U1JZ#lWDO809}wl1Ud zsPhM8vRT-@9+mfAK_6A_dTnZFzU0?h(VLXm&aSV9+0VbLz(u!JWm`%6y}B!%T|da$ z8pHjw+%d*}`x4aO`BA*CJ94IaSgL6p+jPeBlc-j4TEL?1KI9l>Cta;gqIatEc6C8! zSd8mj0c2@oCB|B3XMVz&c1--~pHzDxeY8^&A}~wuzs<0+^$D0arH>Kp8UyHTb?DwJ zz}eGu#V20xg=@U^&Rw`e4u1}t)TUKXPE7Y%uH4Ft~Y6~Wq*15Tdy+!XvS=*j23 z(`LxSM{yTFN?UI>#VvUGptCAKr0*Y1C8}*9_MW9Amz5w{jpS=s$$UxLu=I3trr-e6 zNBX4V(Kx%sUoE88B=Q{ZBjyx|c3i@UBBdmOfc85OgBE7hb)#mWwGD*L2j_Zxo2lz# zI@yqhe1ibZ%KqFxs*+TV_~KE0$!p8uKS4_nAdRt&yL(qFnFG=ySXaFbicAsIh0cBLJ!jga(k2Z zkBPef%3ASzPW`oRmK9t%@gN{{yfOZG41`&e($CV#QnNL0;iT-=C!N>*I5L-<{vuJL zNoUmD9J9T>-8JCQfYe;Fs*uopOqB$4B^0NV7I{U-)ySR0#VQE=HTGm};fl!G!x=Q@9T=U!1J3Ls~!X_*;7bs6nOZ z7N}Y7{~IqJnpYK5-qYX024&Ksb^=>ufZp)&l2VNWs1PohOYzkYBQltQ}~^JdEo57asTnM4D{&=}x=GyydcEc4k#&bcne8!*G})c-k6 zyuqj+63}5#3Fk5;N(d^Qp1lx<=3t8!w73HY(Iupy$Gy_i9)Tid1C3firVR(Nz(f5^ zyXuFMG|;2t8W2%+p_@p5p{WR;Bc1odyZfq`DlgmBTPYQ&Zm4iT4QXuy(KD@Ud0xQx zKCD%@eWhC=^@mcV{)h2EsLhB$xNlMc$h3QS+uvXT7XN=)mO4lDXlOU~E^y zgv~^r$H?5{=|f7QeM<`pz@0t(sN<1ODty_S7=G6LLZ$}pgwCKly?A=8{h2%+dqd-~j$q!3R$_msuL-y{U&oddQ zdNY35+jBY{Hur9Rry1M43$xhqfe|QHc$p%pg<~bHh#W)#8E+FEl}(XNr_+E&D++@y z8S#GE&U}URl|Iu#^k4UK^jLo*}i;g1#KK5d@jkr?`haHh*@63X==86 zgGQC+)znY9##$$=_4;Uk^mx3Qw2FwMl^}g2kCoS!#685g9ks4#y_I;NpEYHs-Ig6%Gn*rT5@*hJg>(v3-0EiXTIQXb=$g9pny#=%3eUP*x4uw%f_d`!OyQuH+C@&wL$?B*l=S@q(?tB9 zN~J#B-!zbQJWr!@pJk!3elV$gea392j+biyLT#&W7IM{xvJ1H_x8j{7g6go7pp~n=x9xOO(6#Pv00~g0ld`UN-+AJto(pdq&*}S(5g?7k8cX=Nji^NA0He|` zyn<;)ce2YUXeY4P$a;gauk*Xs*1Tub#%1sB_mg?rszCke&pBOev4( z;&hcd_r%L*+bQ95Kz&^E$zP@?Tm$f};w;H4W4F@aQ))q|<-oRCSr08wRyP-8v4Wd&%b5V6~<%wXI~V%XmnV_WKEI`Wk*sIJ*>> zQg*;Q(?|MFzc*gHVG;5A0m&2V6?J)}*LNN+{ozQj%<`GC!`B`|$SL*$hA4^lU6_4Mpi}l5} z1eH?2Dh`?Uil=`6l>ew5;5xUZ?b+z$GjiHZ3-p?c*y11oe1pE0s%;I0l#(T^lo)Qw z!h9!v?3*2Zj(vJ34f5wEkCk7;u|0x|@76zdywJ{~qiuspi))yh@}(r^>8%7Yrq0#} zI3&sH0iz!9c&JmvhVt>7K(pjZNmFz904_o-6xaQg)&$EYvaumoX#N{CbSsMnvSbH; z-GgS>WR)0C_-)8Yl#HRhue1~On=%97-RUH$Rp{-exrK}57XyvmVT0sFEDib)Yh4(V zub65;5%!YY{@vk|UiwD$$lk3ljSUXgzZ9xN#A=CAmN`kE(pjOX0J!jmDG67C=3T-M zf5e>S`&pv&1XhzCfk??_F-%r3lm&A>1@w_l@`dhI2xNCoxfsNlesjD;m7 z6oZBd6Mo4;cwE<2N_8pdLwedvU-ICRJs+M9C4eU8xm%P{H&cC4OBy6uY2yarl0R7l zNI|;|oDZO%p&LCBlAhL2RNc+l9#4?=lrw(@@?MH$^^F+n&c9(!g^#=^>*r%c&pc#D!@VWtaj*H2LhtJDstgtp!18weP|83AdmOefrHfP9RXtAB zRz0bHpmrZ9gPDId;VM0Jj0ZfuQ*%dko%UK=h_EarTSdDfoADN-Y+O-H*QAxdLMV0`a6p@ z0#A<~OU2azFcmm!W2M6eP>nskd@SJ8+)&TyFE$3*i+m~@Dg%_D`c27A6yOZ*i@IP? zuxueaQmFJ#HFg4Xbt`<@h%Bb#-qPZ7IcQi&IJ@`hXq>3TbMS(vJ#(}f$&vK7ZQ44^ zSYJ`xJ-;Z2zM4$})f7Nnifr6ITsodQ;T7N&rrA;kw7U5I5w~ulc+Y?F@CeNCzL9b% z(S4`kd=X39Kf{+#uZ5Xn7eK;D9Br}w;6kej`6fAgz{83hI2W|ru<+xHG%SAx2TkX; zDW*-EWw4c_f| z9Vmo*?UapN;cv(9e?Bv2>?WSNB(6Ojult_7K{H$X)iou^1{+I zy^6I){~DC-KHV5Jh}j!!4NLB*IZ##U7`{`%Nra#HHyO}l>B5$+x6P-2H z>VK8S{|jbE;*)}b1S^RvIOoLOe^(aKzp#lNyxVXO(%ME;0ac&h3%>=*XCDS+9$j|=R=wcmM|7WLI^GhdL z0?`A7wY`5O1+%{k0X5bAgH@%V+7rgVPu>9sd6pltj&D1YU_fdu@l-a|UJhc0fkt%H<^X9JJkT?T*7-@!bh(Zuh^!!F^m4gK$oZgho*qB zN1qx?U9P3ParAtk!Y_gPn9_mvUTijB_ReedN731_lrbLC2YxX$;uE|skvV4bo7gM9 z2ucY03`E^h9=h)hr9Xkulc*bKDU|k@YyR>Uy%=~N^$b3QCZ5EG1~sLu*P(-2CJ-1; zPo>@{eOAdrk4@%FoF%V_s+Jsyk)b9uEFxOAKc*1ylA46J6D!Uy%MO4EcF?*_J3UmU z64Zwzk;qdgZyP>0K-~a&9yH*IH-TVS&8D||rx}6QA}+6_B(xc70ua@%vRiV&FY1RN z5T`1~BL{D<)y{DI{{Gd5;*!qHy&V z|GBB*UQQ*?Z3x9e4 zDpjY89yKw(|It98@=sI`NiMIx@UKvT6&ZUqzJ8_YrRA-q@|UdSBUeE-oDL&@blUbd zg3;!5{q_2cPR$>{VyNsD?|-D~e-^4!d3i-+4;fSzxCm%vrHShz4eKm?5W}hs^?^! zaI9#at?IIO>lhV5o^78GS*cf#Uar~on;L4;h}Ti-9~|5<4zb5nb_t}L9(S&Y_Bd~! z0#^}gY%>H|R-n&404Q8Kw=W3EMYfGc@_>I`D!Kr`Q%qRs%&b-47Wm8fh%QDpGZIoJ ze#`~w`(YD?Q|{?()TcD{x!3lQJ*icI%&RpROoDYak0Vw zxpab2Il<3uP6tWW#j)!feqJtbJyc3{#NBh4DPu*AJ-2BN+zZY3DjVEeTmS2F zy4-=hW7nlB@c7!*k&A)m8rv9$uc_JZK{4^kh__zk5f83b?eEXQbHyHe2=zPoYs+{2 zJSy;!^e#`E#KIMx!ti62k5r7%RK9Nh%^8lnr(5yS!}iR(>bA-557;_-^~aY!gLRB-HTvuDxA&bPkhoWi4lBR>~R zVm{E_=XUjU4l)=-ayIdLi(7Go+bPm-S~0OK3tV(@&(;5wJVgu3-l6C>ycF)KNYP#l zqrr^ABc8;hKH=`;Ime|XLN)F31C=-~>|}!J`rAWc>ZBJpN#@7D=;eNA>9~~S3HG#a z+|t$UysLVF*tPTU`oPXiz4c+CqeiX;$L_lw21)t9ngmjvz7*ASd&jHVG=Ey3Go)!a zd1WzQ8pHur{|oSZ$0{JW3||g6b{IN4D(?asVWWh$##jd+vb+L(jI3*?CGwOtt07;X zS(run67`>-e=X_<%fX&#+yAdL1<`*C^Zw7v{U)lmvIdy^r+Vw=`js)%b0n3gOY+V7 z_L`i`BTB_bm%m6`Ydf%zS4opK%fC>t6S|mroUR+>m3OrjQ7T4AKh0N3rwg!%5a;<6 zIRWqHqAq&Q&0O^ud>jT6YZa#=WB&ZJ18ID^Ho&1u5iaDFk8 zBZFKm(yE&wvy;uiawuP*^XYPSwRkaXOCF2zQT*=pDuGT6P$8HDX4ZD9s>ykcc3L8{ zNJ(hfkx$Roo@5cJn=%{~?D0iyJ2aW7I(Y{xGWbS6BXf5U{U5_QuMZ@bJj+4yzrk@Z zC(oOUDb&sxPU0O9cf~6$#$CsA)G=pySWE6s8gbL#aaX_UlcfWYO@{fG+i|M7EzJBXqT4?GqoHgss}=9p~=BLx*Y@1E1eTtU4ule(W~JjoCKR zZB9TV@7?F^RLW7^2E<6${KsU;w6P0b(REAAX$)s4s*cNbLv*eoJF3iWJ^}^9j}~_3|J^*TS%gRz7h5PN5In z9^`r!^Mw6)kAk>cMtuxbWp(9M+F@@vv`cL-H7oD)@``4|Z4z|ZS3rF$YTP*bmZVeA zvU0QMcN{APAPNh$kF{pe@-*JTw^5BWGeVgWX01JBldqY--Y}fDgNZ{c4{-alq&621 zbfL6ceA#RrsO{Pdh2b`GH!)=Q&ba)GeD+@W>bC*he@sXw@Mxz-J#&x86zTXQl=TRn z*NR9Dcm1J0ekf3wx|rPXvduCx8+~xC?ev2unI*D7O~f_Se#6ZE-5WiAErsiSRPejN zUvV9%l2g~%`l!qySxH3$%RZ9szh>!Xs02sOe@)VTK2rkD2trzq{bpr?CY{A< z^v@n@)o&Uzj`#Vj-dFkGpBo4k1bWqpcnw$Gj@tDZ56RVI5gY!9xbtzY3Boofq_puS zpGkfWEPx(;0d=YpJERaOAe@^(@YydwEB;BXyOmO9KW39pf4ELGsPc2C**;y-{d7R- zBM>exMrY7_&ZhT$8M(t~T8cT-E9`}h$Fqa3@ILzTX}*7u^Tp$QG_?=t#Fct=tN;6x z6!QLS*8yjK{pNr3i$$%zLQ4F9ybvJOp1_HyEjtmw7Bh}0?LYpP$5Q|XXZ^ZC_i5TXC7gItl(t*$cya8wM z(+BWIRG{bsuO!TS0N(ZqipJnQg{OD^zw=_<|KA?0aBJzsiCdSt|IZKaKGhGUW5&|k z2BNqn1j^i9im7BkM6RscoUl1%bGla1fyT+7ydo+~jmeAu86j+@EHuL@LO)8FkV}zq zwJx$9*_YU9Ue$kWVkL7EN#dIpr4Fu%(uS~X+#ZGEAx}?x#8a%e02?J7YD%5C!vRN| z>%KnSYMq)_M5a-l>t$`0`Q*YQ*!&{`OxgvrLJdEVi{`5wGi_A^L|PWC|qfMTc3ZvYxZ((_2%@=I4#08wMxx~+KTXK z?hh((D>u6&*Cbf-jf0Jq2!2nIZY2T{U?eQ?;?sUqa0)RrEabY*oO=}BH8+&8(<>qa z3aO8>ucLYMmseemWgI`qo?|ZVGC~=G#UmYj5GK$GjUch z5+)3Xc}2L$CmN?nj4OOi7F%TooDY-P0V{QkU_ymFRts{%o+l@Zs#!U4Lbg|5PLe=G zf!v_rjjCwq{+66F)@3L;LKugG?S2i1St2M5KC2;&KqnRuwKhv$HEkTAo;@^C(jl56 zi)NG9<2--9H%%Nx?j0x1>wjm_-#3zjT!q5CPjX{yt z8(m$taJE7=dKzjakcK-~;Re z%uI!;K|?n>uJv2o92G#l+U_xWxvVe3B8XP}C+&KI^Eby#VS8jvrqIMJpIw}rbcb3XEk z=@EE}IzqOEN0aTHD;E3-yEuReXLPJNR-qw3x6Ax;B|P}1g_mhoPtrQ+&H2WNfHx@x zKTs_6?J7m7xF_;Eys;j2wsb~!!LuF5t(F)?_sA#IljJv6>e*4`G7&aZ*nz{y$GH^? zCKR+VZzP@X$VB9zEod2YVv$LkePm4_Og1xXcKo-=V(Dp?taXGoFBT;<$LGL4Oplwf zWU?7=c1R-xn3P4H6YC40l88^sGc=&hjB@7-%`mId#dD#3Ie09D4BgzF>HfvxJfiM2 zm@7|dRp`eYBBm0j51o@p;*y%Tsdu&CKr>#RO!uIIqoL@r-h*qBay$$|BB60s6~lu) z@GBKJ@7N@BYxy=C{n)u9ZWt-mZ>E+;S>WfrOBkbFb(1qTc|=pjkUr=r;zBzm))_|i z^r=nRNVG7^+r^vDR1D%kFv92IIZsHkw=h#lyapK~%%@P^3>*;80goCvVguKu2`Asu zaZeUsLr&9z$sf!}>q3NWsdO47;x3a+sULdx)>pRv%h>N@(=aHpm%VkGhjV+fQh;gO zrBfL)Xhv8z3s-W=^I-Om0ZHs`NKP{Qk2`|eb8&;sSLt%A8`M)2P$4lk2{pfDu3zcroAvKlRjX5)+ z&V2cT;DkbGp*&qED78}IQK?nKex^WFO!dXndtke`9zl=UR=vhT6)yGX6WV|9h4UBZ zhvPb$DTIcjbMYfuubyuac)N6ju#Qg#70R?Y%?oJuSVJG}B+9q>ZCOg3cphSq!X2(3 znF~oK%dA-g{Z6tvcz~T%>zNz@-_x_4V7GC=>lyy|>)^;ffQ|l|im5={$5f$tV5i#{ z7BF!;BR%ZbA9dyJ7I2t&Zdi!sAOoOsJtn!beg~_Lw(H;0FC@WbavX1pHBZ#H+dGi` ztGh>-14?gWrSWY7c?6b`gO>aI>)SpgHkLiH>lRa*gyQ*)dKiMtjpm;6IZhrP9=ecX zDgSM0r^*;_CujG^m=2PHi1iU0j%oc)YtuKwPLwIlG_hymW(HV|v2$}(LISe7*+)*W zat_&ljVbyuqccl7PJyqx-}EcL?-Db_ zz6`mc@%e~5?Jpm-v2k!3=*Fs}g}s%H++&hc3LV^lbJHPNmqRPP=IZ7Byv=eY8tW=; zP6wJni~Fq9d|2ZhF30%-Tw|8*Mwa&VVReE;AwamrG>yRtt}>T5YdH&T*3kwTKzdFq zG@{NuM!_sbhtO z>=Q^X-q@9QD6;1hW`|={p;hW#re?#qq=P;`@w-_%R4}pfhL;u<*F1kE;M@*_3H~+x zrpQtGL|BqMc7*?WX}gWQoy_$HZ(Yqit!s*vk4vE7ED|L2&Y1}|gFWT3dqjn0p+1Nc z+?4!q-&vQ)GrJCjG#-$EH-_CTPU-USV!}*_qP`o+qU*FC-4b0|n{CziC;TyI+a@FE zd;|pIXj92)uKl7yn!*IVmR*D0_8z&~CbL_|bZ|{hmVUp|3hPeSqyvy!ny=M{zRc6N z?yTjd4`8FR62w1COunbx34o%n&@{U(=J=k0G}@0b4kl}?bFi>O0MW`h9WUT(cYeD1J?P{ZPNj%w66_{gjBq7b7t0_3?(D z?HGt=)$76e{K2tvpMQ}~y$B*SwH_K@;vgPcam`mx+G^qCCbH+ghm-B%VrS%F^X*D4 zx>}na=oq0CZgyKk&g##Z!Y%AC_55q0ZEv1Fcy}cIie>HF(YH4GIXXu~AqIWFhDI4e z`rgc1CNe@4uv6s^8ceoXb+gb*p30kotJ!q0MLfq_`8|Fuo`jX{l= zIlFi~)9xRCY_a-r46Ew-TmADl3O1hnk~6jY)jZ|t+p7QV>3+SxI)Boe|Jz<}p5y`BYIE*M+*^O#u%U5~rD49NZU7rs6|6v?0; zCma9Xa)TbQG;Nmqt$n*Ze|qq?=jmJrR^I0FG%7f8AVn@`%0HG_vtuU}U;LuBc5+>e zxxvmYZ<$%t%r^ilk*eg1{c^`8?!Di?d-VUp3#YaQVj!9c(UnmdTL0$%w%EPocga>MVEfT#&Bo_5Y=I4QzgRZK&F|IwKX00|OXc|=JN0(` zwUy=3?bE(nRT^LKca;QJkkI6NMCIJi~QAvD?gqz^gdQF8`K^@{{4F0 z+w14zDxXgEKL31&)OM-;GM7_&^6%dR^(F4#yOs3D|M)#{Yc3(-6X?1STi}W5m!!4z z=l6T}`u9Z|wcYM{c=wj|K47nBf6cem`+u#TK95kJ0@9)S_r?GJmp{E%;ydT9DqQh# z1=L|5j6l69D`;;@d;cfx=j;p4HQiW#Y~``l$JQRxKW-w4tFz;^xAEV%{Quu>Zr}HH z?dJD2&#h0d1{%HN)R99HaVb3SuazF#&S&#_{nye?XWs>uYk)>(pJ&`{xDQx9RDXS3 z7PEYt#P9aER-nGm$&27VA+S>d>ghHBPniHx9OQF8{AXUZ>iOYg_CZBJgBUzr{an^L HB{Ts5N>2Y% diff --git a/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.Images.verified.png b/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.Images.verified.png index 6b9372bdd345f167690005215ab11c4fa308e4f5..8519d055ca2234206be2279145ac2bac08d39ffb 100644 GIT binary patch literal 24782 zcmeIa3s_Uvy6+vUmAY)9#Z|9dx~hU$xhQfC5N)d{LMSLAa#cj+5)fhtfrMyjYY~Ae z$VCXK2nYzsEg^&?QZ5k!L=6x~LZU#35CSG#0)&t=z}2<)`o4Y6`Sw2Fv-dgYDNmv^ zGc$9JImSEw@9%xb93$xmxZ`Jk+4&a;1oGL*6W_Z-ARC+^kdK-^*$DQ`eYZac{I?G2 z?)WXFvPWkeeAp0t)a57yQk}MW`NGHG^QNmOypRxxX3Oe(9V7C|B?u%S@Z|SL&&2vk zhr%MmIhZ$#i(7||ygYKdEBPoz_r&PmP%m0`n+%+V^W<~i(@v&_ms-5u7qPh}oRKw< zi91jfe&c)8hjI32&U4k=wi)^|53h_|4@&pu>4KGdOsK4-ySymRsz09n( z-#jYK?~O3r@@@qjLcLta_OclEodh=$-0WrdD}H2`utA|bM;~L}UxLQJ%sFR~(QEFk zX?r@zBRJ~mI>?)6nIETDR8-hwFi0Uz(MCWE$dQW|s@6`av)y^3*)g6J^XkS43f%sa z4h?e@#{OfP?z=j4a|tKx-~-*yyDLg;-hD-@*ezs~aix;xGefCMsz>NYyd2ZyZ`-fw zCRf&m$CqSvR}|vDf0#PWm&(_@J<8+dm&BN1UY-k1E2-ol=qW4TP1RRj27yCEX-RZ(_<4QgxoghUXMO&CbVs?yvP%uF7Lh z*`jCHi>M-%^Q>{s?77~=j3(-wczm6!{cnWI62JT^j1oj^}&$MY02; zUrsmIFnP9I+$gg=kw{w6b15iTvVdikUy)o%qf`bisaq{g=4{z&*eEBC>cSJutNU6a zHbWpf$Lx898}BaF$1S|Qxoug9XeYdTTI(aYAiikkQ6V|%Ad(q)#V1$vYH ziMPj5Tw8AQ85K8zQ_0r+wM4^T`c*(g?pP*?DZkPGXno-^F409Ft)zS+6)#Q651%*# zDhfI^_ogTmMqv zG6Lg)Hx(0uUJdR?jt!sK?2Gu+JG(=T&!(A-<@1)~ayvN)$&)~Kdx^kNi809@Q>zcJ zmLNFwjuib(Rb&n}cUftsSYoR2S4QlI1VJn)1d{i7r(MYtA-#Rm?Ugo`imGJ$dw!!-H(S4Rsv}4gop2qb%bvNjCJ?NJ(Bi1F9cjoKC6; z)wn1XH~KCT1WPm5;>E;Tz4xQ*A9;|_aYyX?`q`TILsCn+xRd2BJs z*N+~_;>{+EO+kg8dhF6TRmhnqaxaJS7xb_><+#@=_MD~h#d^t8d0ejTJH?v^%yP2w z>DfU6If~#N^V>KQMtX`EnXMiL6^rwY89=N9vV1>zHPPlmRXM)U7s>;TcQE&z93j+@hnRa-n4>o%3w0l zT8f0YiD_=UAE;y{VMVXvV%#q$Rkl{er%^*v zw3Se?|NN(=k}JVwqiLg~iL!B=3$SerWoXt`BV~GaMQ&|{a4zP#>t4o|j}JN{^@B?# zU1^x5fij>1r!`c1I@d7u?;Je;xM8xecDzQ%aV)b>GRAPr(v9&3j``Wx@C$y;*yT?R zTpboi^P8}ufV-ki@%GlN^clOP0zbMjOXC1iLkG#^+RAUV^KG@zhXX7b3DCDQH*4mPG`wJE(kI0e&%oh%i(@! zFz-uCQN$%=@+OS3gp=bypHmXCOMFqaPu3pOdSb~8=QTb6l0dB zb(iP3X$*8fVt0;mcbQaIIX~mJ@=gL8F;lmz9z{w^A5C2GAd)KMP25MTBk0>aG~v=W zxFx8$y|QS?H9-e6n6ly-&5a=m6XWzTU7CRrdBylMq?EzKhw6i*F~E8ggqfTmwq!Kw z#R#vft!q4pEpBv}j~gO?(w{Fmrm-T`s_W;8>FMU^{*%5ezCNy7;=2d7G6}5sn1b9n z-!Bg6gDo|NPs$O+!IItro+VtL$v>oa(u64P-3xu!($rnf z6Gvb3=i%$Wg)W2!o@P`EF2@BVyqxbxgrrpq7_;OT8b2GKanYL6tfktx*Uh;w&`S++ zY56?Aj=}$^ZT3i$0PXM~*ZVBTm*ZAY9`nO}{Ta7jVd;Fl$MlHx!^a^kUnu)g%Jj7% zgclXN^aaV1CXJCQiB0ywh{dBLygK0s(WP%T%C$g37IqigbC4P;HmY0YaAwYdJB{E8 zbT&z9u#{4wN-85sBSsF@zf(MRn2*UN>Pp4q^E!1@<8WvHQ^{Yq)l`Q`UH~P}Vzu2N z2hG`p>1%|k>Dj!k5QufiV!@Y{M+0{{PjKcLUXq}>fyb)6!p{8%FWr+kix%$aLbK1X zVP|XC94Hgm4a7V+5uvT&hnws-hWJF}aHJ+tZH_WyMvc9+H##;qW4ty8u7VX@A}q8 zK~U5iy9T$BQ+VU-Q4zy~bt?zT{1gJ|$<=`!YW}GbF27DAq_~OFek6Dr+R$#J+?y}O zjX5hndDV?I02Mxacf>I!^v8}zr@1!1T*hX(yfAy?7W%F#>ke7a(}4G2H9W>B8I2x=LCENw(_9=bfE4x z*~_o=RbQ+g?(z-kwn_5_u=(b2r)>8Y5NScKBMlj8&TE(GA*|lQ>etq2aN!MGRuANN z$aX``n@1=5%4ILV)1r>aMNDNSvfq~+9pvhlu$#cC-uPw`DnTZ1-e%Hjui)24F81yc zF0@P9AFSk6o#wc4?q%usdFg~fBH*B8!H2S!r_gks@_rSvzmMT75?Q^*=!QXhXtfTc zSP+)X>v0}gyN#TnE>|=3yaBu;B&dl-xioF!K&l1Asze7?W4^_?xJQyogin?=Eg!e7 z3jFN(V)Rx8+9Ia6_Pe!khw`*6P0_Z^pHIS;35b<}Zr5yX)mryM_<5@}x+l9g?M5A1 zZ!2!kW8adgGc%MeASAd~OGUb&8y9_VZ(YwVeTbBVXmVe{T}^%KQiHfs-kygE^ec~E z3JB-_dZ<`(?iwM8m+N}3Tk=E_IRZsf>`vNViRaDq8l2NeLG|bJ#z%U1#0eyU6cmAl zSQC2K{NX){zPTv4KAS&ZCvx#)%*G}6=!A?69=NaJ0T91aIg{9KYfgf^c>>Cqs_U$W zUzRPjnI_1%nzd7-6E))~nk*%-?Kof(H@(Y6TmCORf`sf!qwy{DzS>Incak`ox5SO$bZg%+_@u`og7( z-TzA9@x-4e<)XOou*P)XxVMUgU;X%aR^eU1wk2pS3nSOtK&r_QDLBc5D=f)u=Nw!}BAyh3j*}xL>yGI{_0Pg~H(>OK$Q~eq~vkffR)l9k;C^kwdCbm7^_-2-= zhQYLu$?05Al4^4HplI$e#;#a$1$oO-uiM8t^oy@e{e$AWjUn5OKylACKX&x=T*u@w z{U^`zGFu`dbNQnp%tbHy7)oaie9{>q5rh1h`&r#XkqOR_JO?o@B8rcj3hW#? z=BDV194irqN`VK7H00f;h8#X!=pqx;NKK)$}U0Yh+Ig|IrX5O3{ZHoQ*+E$`?E^ zb~R*FcL?t=Y59Sau!}$l{r1D_~bfU0!*_keZZ4c{X&wT&e-jZ z@ofFF&RSx5rQzaVKa??)=RzZpiP8{yNsHHC8^cG=n>{NG|ZUR5XnRIRt-tHDOfE zC}<-eLuo4~f{-^RA0YfuzRAR}SMt(T_&%HC4Y~UILo0IW@R5bY$B~ufS;U~5 zfdxYQRi+5mZ{aKC%VP#-2`OdB5vlcpEMQE>qkbl#je%F7J)MUOV3Op@K|vH(vs6 z=)v)*GPklU53eGB4B5Tv>%Rd3&hLj*i2)#t=qZsdaA9+2P0L9+Qx8g@g+#mQR?u7F zWNEAX(&JEQ57C89h)^=;P={U{>{-m*Ki5ts(Mkq;)#9u z0Iln}Y)qc_VaAXrNwi4po{gl};jSt%J8_!lJ*g2130xLp`Rt${5Srt_r9orNN{gZ0 zO|=!pP;uk#P>n^Ye7vXr1FAsliA_^4#taT4c^T+NOuQVCd#t2;3;`_PQFUKvR5no) z2TN|RJWr&uK`@|;r9}8SpkB_8CAB`9)4j%>oQ)DQ&P+qo+W0kHKvO2IBaz8t4a$i) z3RxCf%*zq+jJ-Yel1uG=0eXIj1b`ekt1X)h?7OI&pN|7o!YoGhbqw+;aLBV?$!&uH z5$m42fqLI$a1C`AC>_On@freR{ja|w+z+Vf3`yrN%Z=EKgM{9NArQKB8TV`iH=Md3 z*l+Keo4%e7u;PD00{<2=07CB2SH03-B@BLDH1nPIDic89h5sEA0LXCtZ6=Pk9rEV* zi#39{{uUJA0SVkFa+h-iT{Yh@k_sKxT6v>2?;Eqb>FsBczk;-&;cBMRKFic!fYxnq zh?|=TW1X65x1vSO+p@*ibw*IRV|USd;q-lh^BPXy~DrXjxjC&OSye-;!kl8GEO5 zm+{$jMR~Aq{_ZoFPrHmE?Mz^lp3RTp0TYjl;Sm!Gsv)p~GefdI-4I;X-wJBH@ReCE zt{q*|U-t#g`Tn|8???9&&{&f5*Ukq+E$XDtd6ch_5}Q-<(Z``IuU+CeOg#EY$}yVn zuG;aq352|~9x{nOpO{4cncS9V=lBF%Gr|FImUw@5FYB+IO)jdH%lCVGb^W1;TB)^U z!(Jhc5CcV@4^}M#zT#2fzMfRLDq*Sem^W*-u4f!R_;_qC2$_E0GGE#|h^3HEeg-MG zsc3HH|IWV%2e$><#j0SnxxaKSj&ly>?s@3)ZE^Zf#MJ zkjj_fZYo+rcY0~#`btRzjHB$5R7}hp=l(>nz(l)?4qoAuZntM!r{7;vU5j?_V|$fAd+lsONVz7ta5z^^<^|2kvFC&R6keW& z2Ib2ah-EGtB%Gl1`(*LX>unp-`?9_BH2-c%IRVk@4K2EBI*tvEi_l-m=Vn+Q$^%hK zOy5bD+$$Dr-6*8M(89yPCD!&vNJ&rSq0$gZw_?-txee(pIXs5d*wzss-+7v=c->({ z=)F|#96A;wFtAX%;tA$dI21+9=Qdq&H>djgZG4{aW5?T3+;RrFE%slozr{H;HJTe9 z^YU>qE}!fh97kzlTa*q)#t~vB!c|WdN5PHq$ATb}hS@qjHRK!r`p1W2-I3X_uFObi z{lw$TODt7=5T?Z2wZi`0O3&REcxaieSBF~r2(G7?<(<1c%8FY5tRNuTnmM)+6kLR9 z$;0Y`3S9ve+T&qXs-6|0Zrk ztwWoQ8CXcG-jeX4&pHbz_NU}O1;J@>dlWJC)itl&J;W$xx*lXJ^dBZ-)z!f{NP@gG z1?t4#m_B(N9y;;USFSoWOHkAwrq=zW0=OL)C63^%n0c$t8=B53EqC0fux89k zO9P``LM;|;5m>o&BD-Jw%+C_X`0To<=UcOmF5^o70&<&NlI;zd%>sZ?2?C<4NZSe! zv{+MDO=Sxtz#4pb2R!>~O!LdCUJ3q3UjUpE_$BB=-VB7AbufYQeH*c3^`xPn7(kw< z-1Yt?pr*Btq`JUYza>p$SoiSsY5A`4DfCLDY&KZfq_FUxPg0t!j=P*KLBwlC3-#4E zsp7F2HKU)#EGx&)YQ$$5Q{XtiD*HIhv~3~d@;!u?$QELsHy>~@BI*#FH*bz zp%^b;KM+Hevx!t@?@6b4JGB_EdQM|XHjJrN(^^x$XAL*aNnq*)fyBVlqM?^Zf8PsL zRGzN#r?Vsz5AE~EiK7gZIl}b$nhY9>>k!jlBWHdAk%Hg{dKEG$2$?LHz;R?%ymV9Z zNC>=^e`rJcjyc@|+a!z->Tf!X`u21db;ejNp-F_FFbyo`zCyps*=$t^N|fw8@-5-% z=(8W{nZ?YB?=RRse3G6w-ujTX`7{SQteYK2XQOX&TM>A0U0&eCfEo@B9{hwJXOsH}_p$UE}VMlJjFHU7#t% zoZLOVBI(H2b4znXsS-Oh9zs~GX>1Y@hZ0_u79irwo3{7_#g`|-4u?$CHGnQO5ngmvn*O_4MdJ zB$vGSy`LqCRRI(8jLoeap9ncYb2V61P$t3GJ;w@C;sxxf6SX{?MPG^Rt})%7&yua?%Yq%y2AwXBjtuyO0-jiR@JXw8FI zWSr|)BH&!Rc-ruww3;L7m5Ar^ej5Mj;;X>>=~eOCTascLCD&>O+Kv3tUo>y9PJxG+ zzesQyVArt(hf{1W!)> zelo1UqKE0~5~mR$rwpa7D0nH+R&lYvw>!?v{4AGRRyj1kQB_BI}f9PKX7 zKh7h<{A0Aat-D>d#Doptvbj!j&8fQul(uM}^|%T@V4Sh_hd5tA@cohGGBKJIb}7|XOs zj=5V759PwkJD}Z(Acn94YTdW&vxl#}o5nMWo9)m~6uS+fec(nz_#=ZbU0!?Z}F{euC%3)Ws=aa^^ z-sF7LzSb`bR(wd}hT!Zo(ogS9>^u0R=Zj+ASy9@RzgxX8=tvFD>cJ-R=_`?EQHM?& zT3E?V2UvfU*^$tDhJ89_X2azOuOTlEAt0VpEXB@PdL$Fk5#pSxTtl3ck z`j-o0-%Ew(4JHAMD){j@Om zWiR{kOpswn#7E|0_Fe+Iq{_Z zmd8D=WrcZ!^Q2Q|>w0Qd_4VTk%2_t+d*Kz#O)vC*Bs4E(kPnZ(ce0zW|6LfKez7sX z>2$71*wKJS1W3P65webfnAjMJ&o&lXn&$EZP5J4Wq=%(j%I33XXM$XEpVk%d21J`) z94+QO3wI~qvb4#isMb20b@v+DeeEsUZDX;}WnZlGi{|TmwXLU3D5Q*Mp}3PberRUn zo5M`w@62*!`QNBl>RDSk?D&$1-cp)0?Mh!2`?MRc^rz z^l*vJ^%7^+kr05umYrW4Uv(}Z0kqjt<{=VCPV6CWd-FK2ANbA-5eG}!f10;0Nef$2 z96O6~)(ClZaVM55G=X*r50xq~FX!+7p})6nOFPnYcG;JfhGMFqnQ>-5Xge_Svi?3? zyT)2n+TGJs8N zfxPKm-Lq>i@PB}JELQg%@Ax16Bz?y;Sw20oqD9A@rA?iDqCSgLp(i99><+7vH8f!j z;_%D*mEJ3h>cFr_%>4Ty(v&yjYpLP_oEG6hdgynS6wk;=Ixi|HAy=xlPE;S}W=X_;G?6+A6&;C*z}e9c-8T9uMxr020~Y6UK@@k}jL ztCF@rf2)w(=dFv5o>=IQ>Pi1e$7p5VdwPiCN5GDv4ji&7EtM>Y^@Wt_#y<6;KkS*I zDJ%)Gu3<2*2sHaq4+RH>EhnomDMspPJpSr*&5}-U)ttDc^_howE2{Dbj;|^HZ7F)n zH+X662ZEvtaVlSH-G{3Fra_SyIhfn)gX8H>Q6@niIL`$2+Ktgbo4IS68=8L0_U(%- z-Q&~(y9*&_RYNwVh;`egbsN*W_&=7l-EGAC&2BuAvc2yp6O3y`ydnnegmGi)3+St` zve;0`86iI^O`%m=PxgU*Y)ap`|=35oNX z$CQ|<*`D#zjK!KV!cK1G2qBSEkM@_#pVGq8g=CwjOL-hIa*ABF)upl~ePHYL+~&35 zcxrCnd!#g%e)dEk9Q( zd}Ho%9~bMr?AP`1z~@iZjonJ%z3to7U6y{|)}~a!HmUNLu-GS0@of5)Pr<+r&%m;r z9>~dWA=iF;wy)=s*R``J;#cCsH$U$luG83p+>A^v9j9U3VxNp;j_8U+(MX0!zV*p_3Q{r5gAtG?j4(dVIq4(^|CD2@-S&62F z{_GfgPi|9X=~BdNerm*$?5^co5MFmU`;J{#-ZQr-4)kM$OqsXN+0J2Jq_bPDfZ<16 zs(gVHgo>X)dXjeg3-Vft5dMK;AZZs5B9qy{Zf2#*rDa*J2P>vq^S<|`MVe%$Kf&?5 zPC2YV@&4mH;6DH>AfjKcJokcrJhw`eR+CjN1wWx_BK#0nvRH)q#&Gx3=4cZ>8C z9_xHqOs(w|^o8KF5mSn{YyIifk4faVXyj^!cWkRw+Og)xKUai2egYF8^lz&nAM0P~ z>6ld%{aiUtJoDqGt7k_uU+vBAO*)nPc^yki+|<*(Z1VC9Z_4&nN0u&!zve>^)}yy@ z*Uj)XCmx)1;dNMGG=?;v=7Pb3FK6w_0`It9=w`jji?O}tm#}?tv6AP8-&V}R=MHqK z;D-&XjUl`1LGP;O^X)E1Hw3o^n_GsYRR!@f0RD z4}ieS`G*=eq}xW7mb@UQWJ7=?9UH8@?4a95F~ z8IteIDrX+BEm@70&AF-G38`ZTav>G_)egOLqLa>q_d0dw~QTD?f3&*5u^ zMR@h~eEwuhN>fXy=KbCSjp273XO=eM<%Pz0-D_2fDHcmKy4@gQJKVdUIX*-mN!q=M9xhO@dmjL_2=F= zPT5Kn5j&LrGUgonWXmIht2Zq?cyOiin4e#_>H@KGhTsQ_JmoE(O(V%}*~y+xcZp!B zmR95^T)M+=uB8O!ZtPqfTU=qEhScu}f$3lNhQO28f}$>C&FCM@LV^=Uqq;aY6Z}V^ zM-7BD*&Uq^h46Z?g2YQ_UP_ho8Y1}l+}^s{jb%$nhr|b=8dPSCGfHD1=1JcygiJ-g z6ns|ZKcjgqPR*7axc@yN80Aw820Knn%&-lpl7rU__LOHkJAAPU(RH`}Y%G;;iyNbC>6P(5rFrL3+hsHxn+*U&$ zZIm`3KSjcOW2@0?gO`^gj_{(!5=Sog)ov(;z9CD9ObLgq8%elQ&*Px+W0ft-uy1_u z5um5MnmJeB;p8Xi5pMfC*g?9kTh?BT;2>7A>&s8HKtFWOX%_?b-)|Kif}CAOqr zEPWu}`KGQD_(Yqa^C}Y3R;6h>xAnRT9&bk8k>j1G3sNzR^i_549HpOX9`A!EcQeYg>?;uG; zbE4pQ78rfKs{J905b^j!{&YJWc<(rn0$j_R{ykB;I>h?t7k^gCTGsqeWB9Xw{9_2^ zPh53y*YaaL@x0WzDp`sBe84b2Tb4y=PZ zX`Ig?FTK|uM%1lae?wi8ffTFv?_D8hEObvrEC(9NB<{mmMXjt;Nm=0KltdQ}rOt-law%h|>4hS}+;m6&v=y+)UH+yNGPS}!+g|kL7XCoOn1?N;! z)jjRBNJQH<5^;EDn`wKnso!l^VT?CcPUH>0>h4}x7`u#Z%viW&B)eiHJ7FZNb{~H0 zKHTg+e8YWM1)f**1@CwcXT(<`k)_Vf#VVKLe7yYANR<_B@lHwTOl|Or{AO=uhBi7w zJJP7FSx+bZU)|s*20w0kmiJ$ z!0Z9{;UxFr^F}g}`|zov)@@EntSs$<(i@kM=6VADZ4E1{ksF{|-?bm-Q>wpEgon4@ zw6q*vaUU)$YNZyn+84FnbV||!wRKP1^Hh>mRYltr_q>mvck-#Quqau-ci>2-_eE8v zx6WkqLCk0CAk?*|UtZn__&OWH{QqZ1bN55qR-1gg;^*Dq$wOze8=Bl6bH-0IN6glp zeQU8{1f#20aPTMg-Vfhx*wVb=Tu<01?O|0da;jQfOj1?|+o#Oc<`MWY&nP7umc}cH zGm6Py_VP&>jx4m3rSJ2{9qi1)|CQpubRh$VcjyEUoXB&gk1fuU0+l2F$rUi%A)?-r zlMnVyauiQhkesZ)Slb|V)l2TC=qE)BOCDiIU+u%oW&6-D9Z{mzag18!Hnnsjqg+3A z&Puo=Oyu;`HzDk)@BS!B8=(O;a*^Md(5z;@$pDYyZgGCFzWH%$WDI&l|5TEHmNxys z-UL6VCLgD!GfvAYU=2f45ls!XTVOP-%}QLbq2It@k{EO?4bY`jr?Q4ApxJ$lWK{QI zXi+Q4DJdBAzyo_}eookmj96^gH?)TOFAM0g2OZ*N7qLsA8>N$mwx&fyv@<~4vx`~{ zPbE2mSLhL=y?Q2l^$zUS+qYMMfBP*T_4eB)G|pa7Pt%(|2f9#I72_W0Q4;R?rjm@< zV56vDBN@?s*vTl$(MXo*?)=-E?51A=?3%wfyDxkUb?>2#f|0~o#_HRU( zLOA@o00%R{O+c$vNx^}VJ0*o!dCtCqSliCsuE!QxuE!S#>i22kj5-tXdZHVw_A!l> z! z%#8Ok{Zn|(T6)3ub7!aJ(?&8a3Pn~9w4e>NJXR@{y#^Xk%gh=n0ZpDBindxQ&RB>t zk`=lS-z;kNzo!klG;H5q8kMTciil)b0WBDpN@GLAzFD~l+P|^>OU{I%sC7$GYrXq0 zv#1qlv}uNRf$3g{)9X9NF55MccW427Sf86KdzF&XfDYU}H8}9A79zY=Rn!V>BObhf z2;9@w-?w*a|K3WVpg;hI>gyYth+DJz`-g`sNbT*$q}C;4QubG?I?x>ZV^Y9JVwVqI z;}222ZJ7Ou!BxT9!|wl3i2u|>(f5Dsm?9n+Anx5aQL-DR?Fa?l z#3W&qHB5wI4p>en?CHc6+>+mMEL`qj6!KM9GqfDGi&P3nvShbgWrB6T5F7mT-Z#}T zixt%|rL7g)(8K*H$x)J}kJYA$r~l|R>Du(cp%gq20$-=)nv4aEku2Is=58cY0K-6o z_b_m!3&1%@2!z-R!G`(5!6g03$ySA_@2zQI0m!0Og;UZra1HzS<{Rx@0jG#Fl7YsT zRa7ht_n*bC47V*zwk6BPc@fF3f*5bRM)D4QA^)~3@C`r!jQ8r5t}DujZODjymJ$0P zBUb(M<|xk3n`Hvf|2a!>O@TlbXf!>~e$GfmSePu|eV9A_!0Si#5 zxr*bw(ss?z<^Unc()QoKm-d4bmX@*L{MjC$0q=n%Gyq8m zk7#$avK$rwNeB+y?NA5sAWK`{c<&T=8SQmAYfsftVYQZoqY=2 z{!T}|6uF^(TC}3Y&0!%RLm|``Ri=GUUV3{DKSQWKTiMDLk=nUM+9W@IlDCyfdxd1% z|HCO<2BKe`v4Ap?G2Ms7MXf-^0nG`gr`mx7e;`8r~+8hD`Xk!1>xs#-}>8zzE4F%(MMY;6b z@;UVv6j$nBMfByvCU{ZX0A|^-dgkYC7nMl0v59I>G4i^EwuM&^Yf03@*mfEgB*~LX z3hm@)GSthLGSYmLmOYGQSR+}Y`!El1;^ce`770Qx5HXYxiNmJg zUGD82RgvKDWasAO1B}GS2@3*|Z;fP&?!)F5zX1(s0g~_rNWwGVB8CQjjR%sDpOUih z5=0FCPT0DP22w@?2;zP)l7SGc(tSA8NH$hqKj7<~%mg7q2*TJz5EmBCk3RKO7@fRH zdo|qpuLpsDn?y>CvL_QHq-tfC`Zlj%(SyG-%Nm(4@w-JZ#Ba?iSm5n*UEb5_>3>@; z(r=r}O4u%96{LZ2%SYI;csB=?bYNwHb5Y`2aJ%9rO?#XE!bN_JT0A`LxN;yuna;R4 zGv)Y*uPEK8k2%~~fVJx!(sEpUljtVE<1;7@+Mnfl}Mt303|dMw@w@F6?i%Ey_}jVG8){S_-;;3MStD0$J*e32N3wTNd$h{%t*K* z-p5)oh$&E^G9p(Fb#l~>lMZw48EQGZVfo&+K(S1}t!JCxuTqwZ)BqkGPCHew1P{j# z4-UkQj_)hL8gv>0N_cVFZDl6i%^}9P^E>}r@;3#Jm^Zc6i#K2?-3t5dyF91UQqaO( z+XPYQaQ@;CCjbOsu4)=3d;6ZMq43Fa&Jc~0Gy_kZIiSl;^2oTvsdVhe~7 zK~RuT4O(895Z`odF?x9tz~MN6#K%A<=tg@Je4Lh_WGq}Tl6e-j&J?w3IVD9#Mlx!F zBy@vFAr43amwSsoz`a!k+P{7YXC(XHD5@f30bpm5`|#$XR`IDMR_~D-fCZ5e?TNr1 zo&y(g4MYm7k^nLW-|gBJg*TD`+Yq=910MXYs1;ZS#VM)0s5O_ zHR@j|JgfECgDNK@B*+>kjA1945eg6((U~kfzyfs)_M)_iaX#K zVTLx$WN!kn>1P=Wj|8PW`CxDmpDq2SDql|{L zPFRqR1Od{|?!&;mgG0X>u>vq5CeSr({bVa=ECVt^&b#3jIqQ7Q72|U9nOZC!Y z9J@XJcKb+F>Y;hC9N%A0fk{&jR1==`ooV*-1A^~SIGl=KKJo*jFqOGqW4Zk*y(RU6 zy;)i~DwM^7|}nBO~> z1P#5ij=;Vlg2}d*!Kx>*m)jNZZp*C8|M4rB?c1lnV!-mI3!?{_ zx8GhY2iN>qNRi+4WIRpv)nj!n=n)R;1@~2JK&}^_2McTob6=#N@$+ODrg>fdG|M~a z(~nCE%LB6*=H@g;;BAIi&?H#O^vQJ=XToxyG9SqeJRs2aPwz(#DkTY z_BW4iKWj5!^$WA&&@Y;nX%Y9x!c@l z259={>ZK}rif~2p>-xoXtxw8zCJPp}!~0}>i7Ur6{=&349p7a2`~JX&<$#%`^_2=c znSAs}?adM0_d{38b$+NkL^Gu?o643M^QN%n5r&iv@};K z(`U)_c>4pjAP~pCgW0|7mp!%KD0&Wu=%&9KD69_ao{^&OXRbqYVo$bqG*+)fgibh&%UO{Ws#v^hKq2RUmo4PwF>uC z)W@@vEr(^fM4At^XBET_FEL1w${9<)NN{T&43a}8hh(0jq)Fp~p88Q%1lcq@au1(@ zEkjzj$16ya2@$_AV2Y+L`&6>z055YszHR~4Fr8qqYIE0-(=MJP)nRFEeOBE*F>G#% zl4mKF3aPM4U&>aF9%X0bedXeYxy=TgV|P#5VWi@%R>dUmI=i;(417Fpdx)YI{Zd$o zmIwPhjedrI6liU+i%?vgrnnbHcKD?!&P!EzNcqw0N3w236c(7{>%{JBZxU3F(O?A~ zjo>Q5d?1S+?PYJ4tJB0;|5By#lM%!Rtxl&~xp6Gw-{*eUGx}z}k=GRMMNv~3$RX)v zB3_82u9|Ki1ATA0gy)gPVf4{@d=$3gYq!I$WPf(8+vWWNJM0o&!dY~(^Fn$1Q3Xy_ zEs}~=dC5DT9#9jxSl@t0zhW7ddz*FWx0J%@F%M|(!jp=aY<#?gtAEUIeBGQ<1?JxD z*H9YT{KD}%Y+03KC&-b|EKRCXMW~~f-Y$$Ot!W@;?inHqU7QI)={W%6^dOy%V!KdqBh1DnrD z4`k#>g!?`;1x_RIlu545lduWO&MUQqm$5Qihg>!*is=yABZY@Zk@S5-|x z=UTP(G5q{FlRN&lnKMXK->W_8C+vwMjI*jD6q71?O{#LbDy`NSdafYAJ*`K9!(NJe zPJdSjR&u3l2Wa{v4Bb$BZ8oS%l{l%Ldiajf^BQ+JtdGtgrWr=wJLr?}EJv$7)Auai z@4d;Q;OOX#Y?+y?xit&tvq#7%hjGrm)O1#8?h|WiEA)?;C>vV&mIsKS#U3)y)77K3 zJI09RCRHPYG?R0}upY^F*3U(rdaPyoUGsSvi*Z}R!QhVAT=6!@qR!j;%tE87Yi*|E zJg-)zaW1w9SjeLn)VAkmWA_qA8)OsGm}z{_5Q@rvQ^P8gbOmSVyhl>ho*Y=p(Q>e6 zkKg!Sr53G9c@A#7Sv2>_vjEJ>z>Cq{HguJAlywh&@%M7v+g1m^8X!R@Q{H}y(ec}S z+URp%G*zN@=#Z#gzIO7P-jw1+?A&ew8|cyq)bN?-HYcn!w3Xv~qsJMhem48UN%jjv zGadS!O;cZ89Yj>Be{GY)UVurql`%&!88Yh1SMd>){05T*XEm`a4FC9A439Ok-Lyf- z>G{ZO{+zA-io{{Q_N)DVXv$s%Ziuy5oT{SvjwK$W-bwTHQ?B}?tksz47bO6;x;9V^tl zSq&P1tS6jkN|PPbSD*A2rBN-{e8bI8G?l}Q+1(c98`H_=XZ&6{EY(i$wqf>@-z#$p zwh8dGq0kSGS3R3@!5^5u3+@>vQA*{}e%Gh_Tmq&&V@K=5=#PvztZb9F3V0aX+p+Va>h zQtn0&;b-Ui(pr5Kuky*}M=~pB%y{%SE8dkgxhLYhawLx1AHOl?S~K~CoAc+NZu}GifqZ`S$RSS%~oAA>#eAGT$Kf2+`* z&VPecbQw;AHy?%`Jbn-YsU)slI{OiLzvl80Uo-@w`+WIt6$kbBJOmPS_UNI5Cu0Ld zBjKnBF7Ay&p+9oq<$+rrDF+!wM<%|*ym-EO=YWqJPbNRaKAIX)yzli^fm8^d(fZ$DKr+uDwLG-uymEgc~`9T!m*@QJ`u*oh7q7oAM0$!48FG? zTWqlnV7Re%m^|qv3opq;adLaPDsCu&;pRB-7{;Yw97X90`s(};9jW}lgONb*2H0%l z4oW1_;jz?N~a6+E(yWZ7<({VGC3VR)dWN+3E`>mzHXHZaoA3{aDUNuV| zROZ;wBM5qRy8BYYX54I{PF$%2H-#GV>gu~~Gs-zhC~s7W5kHOf?h!=3LXY4nL&0q( z*_UYHyxx{jdwl6FRQ211g0P019z-iem{h}YNW3Li)ki3y4r;;?-sq(X-$}X6=Vm%; z;~flUdH#qqn`wVBUMP9>UQrx4ho;}8rq0(1?F+T;5qwX|9<}xdd^wj_BSL5c9cQV) z|IhYSJBEE*99Vk81Rs0Wy0|jGO?c5K`MXj-^L8nJYsSZE3GX}_$ZjpXNBFoWaJ}7y z+)KiXI$rW{hCjm%`fZ+ZLT%C&I^rIDbZ5KHnH1ey`j>b%iNhkv_cdf8qrK-_k3Mpd zq>h`ES)v{`*1osDF*q7?IU`fB-?I-vGCo~i#lnpABu&}qrnJO$4X;9I5>HRkD|j%P zWs2@knc3Ix#Es#MFdafQjT4uC`L%8yuNz|o%yN!C-(DU_dXaEom*XcF)6@x1ciXm-;r;!)uwRVz+byJGot~aCL&5uW zn})hE3>lOq7fjE0AwnJBwCWrxMM~aZi7P2DGTJ-2nlkg42c<=1JGi0Sr}DVW2r+&x z*#3x7d&q+=?Z0mcWV<@nQFQvyp@%HJB&9|#-N|FhMBerKvP3c`>Qz+?!=bB3)frk) zQw^74GK+=e>zRhA8D-SsMID7m;2nVSLO1Bh1vVGtviy(Jys22EpCH5Nym%p^z6`;C zUpW8~6 zd@%5sm>@ABF;30ahJyg=B1?ZVCE_Gf-i6| zG~b>!`)!W^kM!lWOb54uj#bsqKH+@;f!x?-;5?PF58Ze^>@Ja47Dd{@A?Ban=sLrA zFNZuP-9BM1KpAOv(W7s#oW%|%*;+l3JzSa8-eJv%klXmJZV!;alLq+kt2!!+VXlYre=?~ z%sEQdxcHu3xO~wg$Yt5Y#u0G2IW}fJh+^G6?7sIAg>+(dFJ=lzLPXy-3avN^ucuqj zJQGbWjgSo2by-4R3`+*1eN#81+h;Iy{KxIO3`^k48_<#Gk-q5akJHS_2~q9=>?rG2 z*-tFvTtO=?ugRSp~@C0ka{#1-mPrgR_#!=P;z08rv4QF>7xXsuL6Tz^}B9bk4tM|jz^yZ(K z>K>u%vd_Yu62-F9JJ0kZGdZ}p1{_?!nCG-W`F*cQGTAG7VG`;)59JxoV=lj>nndGj z-#VQd9HmE+;69d{7<6ub^x&{0Az%uX1%X&U^E1qb_YapfPB1{2&SNGN1ntKD${qDU zK6s!m{j7)A7t)jT+qC_VEaB;E-P1)nr72F|TVwCrM^T^EgLk2esRHaIT|)h3qtKEM=QcQOr9hH7Pq!{aS1e zOJ&afsNHUdVDKadSwx2mH+I>&^}tGaEfE{Dhrpnmo`W}_+J#lq7}@>_DPro})cdMw zw7*F_OYHYyc(?rFYVEwv8KG!ytTh`dd{hxCCbFmGJMWkfVqQ-6JyiLH#0$|+W=seol(>AD%LkXlS0kS40mFJyRnkRWK||Gu>h1{VlYSio~%D znxM=Qb}=DmK7N>5e9uWdjdomM4AuzZ#PGeM}V0NJK(LK$BHaa2lT->*wdRaq{SpESG zD4j3_j&U4Bz93|~a8--nj%?6@aZ^3L`E-Y@88Zs2qOF`@8V0>BR!@;L4K~I7a zcJM3%8Q_F@IX`uz@?xS+;+9Zl-CS_V0*P}D>6@YV70RYZP;xtv?Pjc!AjVF|0NrLb;)eE}T+jjdtfQF=!F- zy!xSmK8b-^vvU(eKVm3xl6xK?oVwexeP(i*za7f}Q!-_1+qLeN~aW<7w#Ih^zUJb$-FH+Q*;bF6XyoYR*`Eh^y~;iGGn;RzkHaZaNPlcyfx(zXL~

xBh0YyGcxq12U93SL2{wt}+ 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 diff --git a/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.InlineAccepted.verified.png b/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.InlineAccepted.verified.png index d3368755859c403a295b195213be9a85b48966f5..488850f9d07e1bc858e5f4c582c1ca050bf92201 100644 GIT binary patch literal 18301 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 UNuZ(IOZ2?I_d8sBFyiX}0`N&ez5oCK literal 18300 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 z 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 L{%!S%kemM(G;U;f literal 22974 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 jKsO1@k%@o> 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 diff --git a/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.InlineSingle.verified.png b/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.InlineSingle.verified.png index 6d36ebc7aedb05c1adae898d3e4b4adb07b83c69..8bf1cdac458b421c78691e2810584fd13a339c86 100644 GIT binary patch literal 21007 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 Oo&L)61oq328~-0Tb^5jd diff --git a/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.LongPane.verified.png b/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.LongPane.verified.png index a6d8e8e93686feae35522dc145f768dfd9a7d844..beb44bd1051802705671f02666e59141ac9fad56 100644 GIT binary patch literal 37916 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 literal 37913 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 yQaPa4B_wZx*SY&BaecR{;FCCh?T#H=vqc<0;_B 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 XIdu=7ANgJTSg-H=zODHt{D=PsqJRlo literal 24191 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 diff --git a/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.Minimal.verified.png b/src/DiffEngineViewer.Windows.Tests/WindowsPixelTests.Minimal.verified.png index 5c6ee08c4fbe7989d758c35b8df89e2468e558ff..1f4642f2ffa48144109bc388fec56b9ec342a34a 100644 GIT binary patch literal 35910 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 z z%=VX9V>A&KP<0c+zXN~E_UnikMQ5=-rXDO;g9>Q*a^P>WO?kbZ`IYSV{yX0C1FSm> z^8G%5h}QFKeB3^ACbmI5%P+&iyr^1mP2ZlG`>jf+610`y2%A4HE_1;L8~`hllkWD`)e z&q73fZ2PJ4@E>13aEZA#S@?z-jkC#yQU8s0`KZkRzx?3I0YY4ciwsQkA;0`XGa00N z@ClEpPj7Ct+MH;5>{f#*ZyI8)T(mb)pR>l*!Rm;vM#}o_6Kz=_<_emk^Dl5VJl|++b zqB9YUYc2^Z&@D1x)cxzw00u@7XqyNB@F{Ys;V$S8fr`lVCs8CfKKoToCsD)@L!4;C zFQXnpv_(HtcZD6MZ2%Yk(7ESuAXnPAvhnkUqrZoCQMoStnDw^eiotkt~=j;Bw5(Peh}iR5q(} zN7E&}y?_{pYH)zB`Q@;7p{Ijt*$PcDkdr>p_|zu%zhXo%2m+cVQxUiD3Ni6;2oF3u z&zDCu?x-?=6{-M%|0&3UA@Ce97>EN>`76!F9x9PPH%Fi{bY!yL$dz=ME?1j65+5My z`AC4hqBN zTITlt<~(@{{`P<3f9lc2uRdIdDF1!Wj6IQnABMF=0ImMO-fdCb@5}gX2g3q zf_pqyFvR!{Ol5EMNk&6U0P9G@r2Z|Z%HJttaXEj+6w3|3x?)Y&5NW?>Q)HR?{~V6#%=OVUSBAeOmR>W7Er za0T77^z^CAcHjeXooE<;s{!ybrvHT_wNJUZ&=IjciN?^XsQR)@=nU^IH_!cy(>TBo z(wPex71hoih=M8804IBh(CvGfPnJS^6o7?)Z-Nkig9s4;(YlCRsV|V-Qicq@t;0ea zVYe!O)a`7NSZr(swCVYMAd&GtZkrBWq-l~gb+*ZF<-23%w`wtjtY}GKX9wR&@wTxU z`t-5oPv5hQu%4S63;-4Fq#_2$F3wxs#Y@cegXRLWilz#iHCQIJV z&3%?sb9r7{WS^fkDP(&)BRt*35o~*Czk?{Ya`~=&;ZdGIj@NUR4bNgv%)v8^kB|!$ zd4Z^fEGJ$Ea!U z$hCpCx)rbtqC^G%op5sd&L$MtW;{4wxo(I9h>g$hy<)eWrY^IRKWU<$tWLePUY!+S zJ}vC|4v!7Mu|VQsPXz5kl*chjK+84w&$@KW(M1Hn#z9TNV9!)0FR9yH*XG-1s&rXbaol;}2}+ zQQz#gOSLr#k&FR80cvrz9P2mqLwLPdZVIaAQ!2E@u5Oq3vH}E&Hh{Xn7yhwG@PU3< zYdLz%cJp+_L8oZ-%_w}9-M7@o03BqHLT+5pgCVB~Kzc`)_SR0f%|Cs5i@*EMWbkx1 z*varYe+J!h60DCc3fc_W!ufU#q&H+Xff#jQO+Og(_#lV4G0PZ#eYd%7pMA1v(n9sO zz2?xqo*n69TLT93PBwFZqf%xjQYvAdR`7*1Md|PoI4=oArhiZ|d38Hg4@(H_TB5iX z?5{uky{W^i3MVD!wCYax#Gn2e`@9X(zyDHKu$KPZ;fAi>kgkfGLK^yQ*@{Pg;=;cO zYWZ$C!1AZ(czi+d=irFXjba6>-xeW=tnA>`)loYw5tUBHJVl|ZG) zi>-*jHiP{q56$?v0JmJ2fT!jFgyi`+0b+Fj+_w6k8};9}_O02XRJ%Z~6@^`Wu`H5m z{F8!eo6`Oja?$XqTnJ}}P3eZChL-eW^uy+9^Z}{bomJIQvpw~bg_TxYOv$c1jw@Yi zP5A*}Z`tK!<&_NCTQH{}zkv*KDr5XP^n-2Off-`ifZNh6$<$@>izVQ4d{y1?h`=!v zf$VkJ{KSIuU@`jP*_%%tF1DJQM-+=IB_AcE45$_XHh=aB-|kbtULCh}m<{|iuIJXI z1$tWtu3d#H9rubRd5dUIOvPsPcR#j*p>otKtX?+!n8vPqx%z4bq&L@X38~)}c#}OV z>53`tIC;~-rvE6lSg%)nGVjP(@X&lE-dQI(A4NWRhn3*L(%fz>)AD#XNBkqkTQCCe zVRp^H52Mi5xkbXCI8i!4ZQbSCwilW}DcWtabOO7V{joH2W3D{|)v|cn>y!UpE7b(R z`v&*``*F%+Xs{|DbjZ%}y5vN1$GV2ijc~pCl5-;nZ6u|7TUAuxWoIb3?a+va#HwI6@!dF2Tw zpS=7jD+B@V%?czITVd#sqgLPF8Z8}xuuXB62f#3o286ItKm`eJ#=leC#NPW-qpMU= z=5Owrsp#Ushka`q>^=aDXxTWCB+?LYRQ|j-1iN$W_%55tXj^097bpI&TsDwF$S2DQ zx`nS$f@*4s$rDyb|HEOUVeJ-2sQvbi^zN}G+o4}zCi13F_C;#P#j4SJxh>x|c{XBN z%hiltF%eww17fJL4&5T?HrRn%3w-JDxVae_-V&|NH%R*b)?t$XW0xS_Q$L#M1U_e{ zSFSiN7fUr9t@AcF9PPWvHt_dOw$&OvHVtCdIAql>Bxwi-b`9ZQca7Y!wNq=BplNg^ zf39L(>PJryiW?W^A0ru2LTRZTMe(p4yzdOjV zecFcCfJGalcRQ0NFQ33Gj&1>VPq2r!zSSU1(9ad)`qr$qY@G?3$g$y#5b}%M;xInN zxM0jXs(AJR(&VLwWmCTgz}uWilXQ<(-L5mdbhp0N2&#!|#<4H=YJFQ49=$n2UpT=3Iy_X^5 z%EFj?Q>QtUxoH@!rw#l)-nBk%9?hDsM^2`USrfWt z$rD6Q09%CR(69R*w9%_`e8bGj`VZ?3ts}nfvHE}7`_8bYvi0AnGl~TjyV8ygWmKdH z2vTN5hEY*eR8WWrv5XWWARtJHj#z0TN*PK-MiJ>EMM{E{pi&)5fB;btf`kx52rY!% zcO~eEs{~rYs*r%Y3f^ViHhcZaO~~)lDYE9n728Lls1A* zUR6;72Z2A&ZPsQ?{6kgSGbd(W8bM12z@lYne-WFIV2nh6K{yfk)F9c<2ynkSn74Of z3!b#^WTGwfaeZe)vXw<>9;nip0_fjjzG3~o7j6^n`lOtyhl8<@X=Sq%H&C#qj#YyI zASFKw1o8N!c^GOgaxyi-m;OA<-HO|$nbra{G;X8O-WCg*^G2CdU|>P5D#(9suGZ5` z15|UF18NczUd+I_1BCX+T8WfkFX}y>s@{w<@cbiQ9!AeTuY46noU@I*VJHkwLHXy! z%zkf8!V{#ub`O5{For72LcHX?bZ>%KpMp@X2N(78V5$ojj~yFL+s`-c3+k=V|GH0f zMLrDhCqO!a(?V7NzwAx47YW)YWierj+C@;tqj_9PIYHkzOIj1bZ;*Vs*#0Q?^2!sC zv+%X=8y^{kzv1=_xCzuS5@5uyaX30YBl(Ok|-w+Uh5y;UimBtr=3bpoEx?d*36;r*4rq1>s62vWJyGCK&chOO& z3+7wpwdn<972NXCGxJt>o&xXH?>O59lRC(0uhC@FFK{Yghf?yCWHIDeV&Xb5UyY23 zJ-ug z36>6XcA<+kntyt~(B7PBB@-^n9|gnUN6#dHbQg6)bcQhsc|hSSpdRXkO2qOsx$!C; zv_0p+rvX7_=N5@|Xr=GqZSIss!akLyx-J5)&*a?Uu3}uI%yd z%Z4@%k{a-lmiQ#Y;@ye*tJc76ZA7%Gm_$Z`#Fs^D42`VKBAqJN)_qpkjerW#Yb0OZ z6Kb{ z+-=f(dN6DzvXH3{!Ezej0T$`X@;tz+4lDNdU+cV2S9lmIgC)#+YntqM z&Uq;D!4EA$2r>FDY*^!x+nBDec#U6^q_Kn@0M9I%qL!meKT^GE$RBDi_2bjr^EnyR z-E$=FiXE6I)gi8&To>dzOs`0v5WGM(Nxj{ykohY+A<2h?KYi}zhDO@S_&J)+wi)Kv ze@~g6QF^c2W2UZ7wO8h7Zrh*%49vLjua|P*;EsKs$baHP8ZybbY5uE`9QTHx<5POe zQXRj4&F=>R0J0>$U)*DK?fxeLfb@FYj`_FBN_G1M!%5CU0&X?KJf7MgM54m_*Y|Ub_GMAs{whf%tA4fOM?aE+8}Q15WnuV9?qw3uaW$Q?=@4 zL{QH5fI>%hXj-8PAR2Y1Z^9HIM_}@{jtHHC1=a{}Qb3Npqu!9La3#P^-e~%7+W594 zaU3C_KA<8%;SUM0qlQ<*@=o12RBvIEYyjCwotdq$=y8aOc?hsWDY6-gUA=&}9G3f# zaCvRf9)E~k8sb^DDB`rwwlrFnNm5-V7W~@4k9B~0_@xiNH2W?RKpZDM1u=~R0I67p zv<^MqBjG15+>Fy>U-&K>AffXrfC%AaXKC_Z?v|t{{oL5SO=5afX@Axj?y4W4-5?m{ zvjWmx6$+-l?XMIYwP+b=wTk7#uv+(qN#g>0cZ5ekXv1n{tckhZ#=Y2p2`P~CL1cy; z8kuu0NxMPO#G{9R?H_1HsyOkbChhlU=%;V+GN^82;a{4L$D;6)L_k_PjQOm_!R75z zX56NZ&sUnf_*d(`6EH;MZ_x!`I?H5xF+Tev0sZIzcjPje7`qhb*NzHDo|OMFwy{5p zHXUOmhHywor??aC+W_bmnfiu8OT=$m8c%Bw1Uf-7OaG#l*xGX*!6a>{1X?y0(&nh} zFIC!^)#%-lf_}FL62Pm*Aa_;TM<*Qu$f$-wK?v^^p_{4e0&>w=Fu7I`boZ#57H0FuUgf#gn z0wzsu7p!`$=QYsHW9RQ8jCoSz{4Ujc{J>5qxmvkbUTnv*c)(cO{a%kgJH50cufgid zT#TGu;MJYCH)&~H`qUyFw7qkAZOUGf#p9qiAR4GT3eiC5 z-;)~l|C9!T7|yYA51*Nsx5xK~*Qr6wz*j?p^QPG$;$WCjAl6ejL8*N5L7Lkf5w}|O zX0hRLpJ5}UKAqm&mkN5ClChpBa}{3C4AHp`^2ep3!57rgxrP~tbBO((5i9J+%OlsZPPRK> z8L@T+PWN+nh&4bt;&Gtz3(3x(UMM0)-ZDm%VIn*9&~T)ff!(~Y9Nu5$-wJ^#Fgeh5 zeoH5taxo`n$d5Rh93c2pG;Bspo2y^#!)c%rt{>grl;%srs9uHNa1-#?OwdSJn`M^g zG+f;&$G(}?pDOA!Y|7aze5a^qxp^U+x&YEW`<~!1iB&To?TyE*vm0sIG1!t1d1}nq z+6z3XeGF^r%Mq%>lNamDuj%zKLJlzBlolV&OP#n5XRaK!-1mYsWPSra#pgBu6(S?v z+H+|cehE-?4@&MKYPu|0kVhnTkZ;E_>x0PIkec8xttnzr#{DvLP5n!QLx&;sKvf1` z#Zm{|-Az7qwBtO(%jR`W2L8fpNv6yblc;w0{6H{&jZj29hPBRB?f1b?q%4;|ZT@W) zWIb4$#1yq$%k(Z_XZbPhX&R>lU0OGpzY_Pdy)fNcs9gYwLVzX&T%u%=@Fdj{CZm8d zo`2T6@>NN~6E-`+`1nq2d?mG|f1EPRQ>^ZK*7S+4{!9FW>;jTj#_i{ym&hF1(z_zY zh0N}FD));191>$}6I%l{EuoJO&31)UnN>-dtbhj(TivmzuYo`$y-G`}%l%+D#*v0> z6z=ed{4K;voH;W*FK6g|&#wjzUvgQ`n)n60S;WzvpavfBtnKbCioAe0V>Je_ZMqX) z)YPRWen|AZ<3}*V1;?Py=w|<_&{x0N(GJ|NGJHSU?@sdqmyE7mgx>bhcZt|Xfgsm8 zn_Uf0#=SDxVa}yJN02Q5%I8F|4fKQmdRfgrRj9+TS)AN=JpQS*N2YAnD}ubhsAEpH~fokap0vE&FT zz_?2o&(>^7Vvr{}cNW+N0Vtikx>m@j111>h9^O!$*Od+_!M4 zLn2ErRP6;~>gEz~3R50KP1ZMTzXL%uVK@H@qGA6-5RKgC(I1e6%}HY-izde%LS4@F zBl!#oPb*w-dEMFU7wZD&mzFm5=a z>DY6M-aRdf;;3AIdP$(6$oK3^4dqqc?=1yC>z|N%0+irJvGG>(zJIXdnVW9sg)`f{ zW4t$w=&?yF<>K)A{OVb>eGP$~5&wD)9i2DD!FGY&xaX$3!v@(nB$Z2s$ZpX=7lJfM zqmZ6s4o5%@pUA1PE=MNa7^#i1G20`7_ZK>sbl;6H&*~}N2?X?)XvoLcBt6a1+nb;t^$e0%l1xIL7!AG8~k10-=|y8M&UT< z|5X>KQ29Gpg%_%oyvdPrbCbJN3;Ib&!^o0ohWG=WTNgLJ0hAKibIp;d_B;2QB}!Pu zc~jp$LtW+94y{RO+A*><171UQkUpTWX=Xf)6Qx0o;GalO8dv zNhG%_%*JB)62B{-@I#S~;_L?i6hH`b6t<5njXDJT5NtMDaJGfc`L{?CexqzV-`^99 zNvr%@i`jrwO|hLIDgasu!A8j0KUbSi#>wXKf^@Fx`lvYjuInNoDUF~A;Hbl5|MgZ( zuRTN)?atbYc+#i|sKtb^ss;?r=R3%0n?B0X_dQN9IR;8i5EW<@{mhV9_}yjVi>Oh8 zy*DchCC;sHjFSK%)p+8A;7DSYtPePU-W6y z1wYK+45#SORfF{E`Jh7(%Z4XmOcsejs|}sEjaS&ToK1D4d~$f@y{wjH%8+vATj@8W z$@%fO+Rphal|=a>KJkVQa`As=T|RXtwyWm2jHJSCo*HKHT4Edey6r41Nl5qHw%t^JPuA<>=4C;D z)vTNaLKWN9%%)>EHW}^4X1V$Q_jn?jJAr4?OjLhK9YR1aSSPKf1XZt~bsiN1eP7AMR_=|gG`C|Z zKf^v6t|hMgGEDTdxr8*U#n?C8(xgJ$EKGhubtYSCDJbcnc8M{FlL)2CL71@~FtnIU z=->ZoXZfGDqoB$FrBTZVfR?X_B?LI^H}Z1C*wQnn2(kMM!E+9_2Q;oYrbm)nfOb-y zf#x}Ec)l0ko)2QB4Y5jR4Z&ja=RN>fBkLhFAiHlEhoUR(v_HsW52w8xj zOYXByaI2f_MogzMuX#36k25-*(4ITv4GCe|5zNxKK5OuIU_W=DZehw{{_FBUgC zl#Aa#Nh2s(-mGU$gD(#;WRxdlT--_&9=>}&yrSr8_dW_aL?T3P#Qg+@vG!-p$1w2;VZw+>wpTxaNlw^SF#c8WtgA8y@s z@Je+$O7M`~+M_OjwLLG|NA?Ar_@xhZweRZAJDao=vp1ko`!T$f-9>A59KX5Rz)i38 z%>&D>yYbaAlEtlcs*kIeZi)g=RUWF&6c1hMs20O$NbKQ2{bZ%GF9?owNU5ZoUKHJt zcubbcTaG!U2d8LRY43-lT21Hq?iQ5y{q^h$u(n?5E{pm6n?8V7EIcZH3 zX!7|6>~DLkG5}51BV+M;X8HjQXEHEy_TuRh4fjYe1Q5oY_0F-GWWSWs;J{qdf@Y!e zj(<$$v6%LHnP+UKr3uZL*6-;O^SmOZdKxDAZ`0&2X2%l9&^xrRugN+YxapIR4CMxY zTIxni&1J#$0yr{Tkl{0;XH<@gEy@Z(aQpu(-sFI5f{djk4q}oZK=vP@WNF0tFgy@T zB7lfDxLf;2Fg+sQ*XhYCzG@#tmk=Z_vdeG3;UfD1K-?}K2%7><7K_nX*sh`Wf3@y6 z1orLt6*%f1Cu#wHM^4Onn&-aC{$bajp%HgyJOPz_CDNKP1ofE3WiKl{V0*-=jZCKu?C zHcBu)L?Lz# zG(w zpLaEJ8g6}DIsUKaz7cAv^Dv{pBTVdasGx*{0=f%yzwNJOV&=yxeS>O>5)*S@Bhgco zRB}SI0q{{WmRKqu zSfmdAx(VJ2kgjd_?3JgY@h)~L7~26^KB5Q#kTnK&O$M!knLj+mzWnxm2) zAiI3RjFt%N8lkfi`PD>oaU)Jg=D>DFaI{*voRx3jn7JoG5=Hz;q)24Ueh6|a7%O<^ zo9ru)S|1v1RVB#3=xT)8wbc}LN5~Q02|9algqwdILpiCz|7T(e#Sz<#ciKQgzomq1 zUWRDwFPP}{rppEZyI>`XHAs~rFB-O zxGzLXS9}KI6oK;9@dU!@vAiIP-M<2ItqmhDIAR|ywp9*|5LC+?hwO~bkWG)$zsL?c z#u%ycXxLW#Tv5Mq?fi;*a_UNj46wq;}vP>ZtJjRtF~O#dm^)~ZJ3<0A*}KwBrPtNauKFGVwK)27sgJ{ zoRA__Y~}=UI-chiZLiWMHwc=azh~(fKYm5Ko7)x9LC?bGVRIW6BDofi=UO_%_Yv!U zRGREuBmVVe)=#W?-^M)mbGY+tN0wz2b)+-QCWS&Jc+UD&*0FsA7cswljH@W(QiBt6 zYUfAQ?FDbY^ye$mHT zx%KH@+e*BfFa5b#Dp!K!v>#+PXf|kutyt3T?n^>iEQ1u}@4`Vs4M?z%h6G#+(po{U zONX3t=tGZJ7FvqKpL(@y5c^XVCsAOTuc6ndX74kvj|QJ-uOrX(=}I%d%GFEZC^jT2 zvRxVWiaC?-jBuPumyS`7?0J)GN!%FL{&GK!`E1HuI1ftiX=xvCQrwTliA!fZ?3QDC zo*LzXzACA&7mz5nidZ1C-dI-a(Hu=EcZUgoiJbThBYU%u%9?PK{B|{5*Y{}~;I$9l zQ!wET6dTtvJP~ z7xo64wR%1z-28tLBk7&g9Jm_V^3y!_%YJ(fyR>|6@V3Xg25W3~=b8J-J8X+jDLhct z&JTR9O0Nmj$vy%H-_h6B`9HrysLIBgDg5+`4l4d~`f~!yVOiXUG&h|!b#=fDy8H7_ z4)={7@xbOgC8>#gI>uEO9i?uZX03pdEd46g&~X-TNV4cpVie@m2}oCkGea7G>WXTn z9YXg0-XH0c!hZe_^++bKT{ix9xJsF+P<~z?FJDd!(_vUz2wks%3hkJ{+l`Dv0!H+m%Hzw434 z#+qs7%sfA@C$12M-0$Y04?)?jK5lTzU#`zJTmakw9dBj%NvjnCS}m7+ygpV?qdr?O%`QCiWeU)w!v94M95@i+Ft+)Ukhq7?&HP`9V*mT0|7Qn({HOE$e;@gOANgcu z`hVYu|Gp9bb8kewjj-M(xgIIv;H+ayIFR}}0GJqz<=vw`z39jj3})jlI8`3a92m?J zFrNw#bAiG50VqWPvIB#;WSjtpprZ{4Q~00`j)aFd7*6%vZ$FYgPjcDy|AUv^C%z}l zEb;&RqvW>Ni*F87+5mB?J|DskZ$6f9DddA=qlY5Q7P+%a-EXi#C~-E?AnV;Bfn%}F zSgDP*usK!O+>=cdWLuyKXW4xE`m95a8M*R;Msi-$X<32(IXS`DIDCJ?oFz&!zli!b zi(L31c;QF-0!M(om@aR3vBZ7(!bYd!J$Yw~FPM+YQn<2-jL~GqQSo?Ysc2EEb<1fn z-LXQ}i|*l(cNRyP5qO%$P(;U0zkm_D-B>mG^1X{J_5ynR*^Jj(z1r@w)ZnoTu16KC z(;82uvwH@U92vrZR;tfDIY#5>5AG$nZ+T|r7}jXu7I`SkmXc0aH5h+ealN%v%g@Oo z`}9dcAHG*>@Z#HH>bUqDNH0<1dU97B82QR@S>THF}Ngs4&1&120fGRe>(Jg(`U@%BFKwm6GV!im8r9 z`0gR?uF8D&#c(xxBj1~aJXY1`k0Kb%<4$ZuLk*?}t>Rffk8=g;(V4l~Av zJPfUb$Mwfg@wF2vR>IyHZX=${Go-IGYKYHAKQPAGJ$OUGNY6T(x|4gAV~9OWIebOr z$bR}zyp6lR89z7PJEb+Ci5f4`|G0CALmTw?iNU#gYHS8v70XoTX><+Ez+ieEnjvF+ zm?5m}!H@UJ+2(TsipHtF{5X7Z!)U;se8XJb!3;jTgVJWcEJHe*5-aMe99U{NGSY)5 zj)&AQl`W5c-ARd1%pefQc@(U0puCdXYBOXIL}#ki!ZR})z4$NwxKC@kY62@ded6hb zEKxEXZek>l_nkHz9?NVa9xWpp!NXF#DC^Tv8?n~n^_>lYA}=%B3N1O_H8>`(mOq%V zN9dimoOjBnZcy02E|FxT{9usKD$qMiDluw5g?GpO#~i4UycZ z(kWeYkDbXG)F-Ra&(+C}Ru#Rk9WoStsJ4K$V2C9wA0l!?>Z=Wj-s`AjOW_|e`rJ;l zi&Y0ko;muAF>7(ZZ-2+)l0@(Qs)I)Q<15Rq8W58@S!HAI<4GI`#o8)3C1>PSJuO>J zq+6Cq&5uybBXneXYg9jN)$Zb-u_7GvDcD17gM3dlQd)(R_fy6+lC;pL6$HV<Xo}>1E?d_RXTUsv_0_%k3|~QY_U`$La+~4lFswKI-0zv< zy@c}VjW}D}K#hFxg#01l#@@4H2oAH5K z0{0Zzlc#_$O!XOCb9d_7*E|thyLvgR$2$b;7u8iMyjSL(yO~53dhMF>OidKP9HoY9 z^E$FQ;T*bW>4p51vF7yN#pSKkbprj{(}|P@#`jpt3_<9~sE7S{;PCn2yNTbs3H9HM zZ0nS)ILnkrs!chZ#=ex80-roDL9t?r&sI3JY$UVu=a#CnK8+zWmf#&ciOQ3K{HTz{ zO8hO{9HGv^q3BI&TaS%fr8@8`3*&ng82C1i$7;61aQeqvWGCJcp4YZeVLq1J7AiCe zpnv+lgW3a?%conk{Su~4v8a;!wfdL!`0l(al_Q4k^vHogI!n7}#9JT#noj5H5flj@ zqKVP9+VE2|$b@p%NPgwd6)YA_v}ej8n~S&?^x+ef8DyE2^wkei8e(b}r z{u}K_)J&fUaZ7Hj=)bB=DjLp-Aa^WQFeuSi8({}s(_`N7IdMCVpT8wUQ*Son;jTzy9 zxX6yi3fkRiCI17KCn__}?W#fbGdi2Y z%uvm$+(5-$?4rf+30W;p-u;YeS12|t&TlDzXGDalXGJ-KK4NV6k1&`vGaEq;HS*{i+N zwqLm#f32&smKuqRBkhI?<)wRp7aTw1skvb1FXOw$0n8<6v92 z^^uh2qWt~slt()fSo(izB~l%WqZu{xS}hD+xFa1)Y-}9Qf9zOFYBOcxQmt=4;{|xS zPN{WUt^vPaeNgxuo7?B<-em<5jMIW+o0jKx@k2Irnp|{>s9t)89VJlD<|-5CIf{fw zcL(AYE9q0#jrzn#6^5gowfxZTJ1LxUw#y*(Xw1Dg9$i$btJc+>WlcX=?7D?5_v4SI zEK#TMiU&7_^cB6o&y-W$X{#Q+qR-61)RL0#v^5#Z>9Dl0h|QG=Zh+NJ^AcQ}nU&6% z7Oy6Gj{JLTGA-e-W6|&@nxl-(3aBUSfOt$Q!M(72isFFLbx42Vh7u%-ot@P?#LRzw_^6we?DWNOf z0@aMdeJeo1${X8XB;FpyzRmmHODRnvNGc7f)+Mv1#m!>*`uxW?kQ}$7f zD(QqCtwhISA6)i3yl4=gN*1#5c)b|g^va1gLm-=n+6;2Kq|LZ;^%dmr9)=@Z+N7Se zSmD2DXFk$=*tEkGz7-{td*Rx@>1rqgyD85`%fajGrs{TnAf$0_y1rdr$zTFK>8Z3f zJ6D>>T}pK3qt1+_9be_!sFJncG4XS2)ymFAcNBvq!bVd_o<2Kd{^fz7@$R6*qH%^u z01|A1o49>U-@PweI<@(QrhgYi=t8|p;Uw+CMj!{u@BD4k}xX8WOq7QGaAbbgCSv( zwJd|7Dch7W#5DHhcip3UPS5iFeqX=skLUF`(=7LWU7zLsdB5M+9c5~4$hURRRu~M% zckb+|OEB05BN%L5CHE%q3fthwQ}BOWUY88@Vc1r&FW^5mIG((45(dM?@hsVG1pmF| z&e>~TFxa-&(Eqr|?m0JLu;|`%r%qn>vtbUH#&%8)1F4u}-B({Mge|0>TEeH|;6~9+LUXUPYf+_nQdj3V*MI(n+h$MXY^1$GHlp z6&J|aNIfEr^(Aj?ETpRoX(Mct(m}&wSA4_=%qD})k*TYb!oi<}uY!w$ou8Ur`9Ra| zSv5C@ZtYH^(>!i__!jWz%R{A0J(0B=z@HY6ErZ7m?AC!lWq*^?o5@t<0)GlUPmo+R z#elzH(U+RyP=~;Jz(P;wj*xZnLNdM+{nx63<~`*|g|jA~dW#*?>HHG9L1nn+_s9LG zZxo=@-y;XQ7t8!vqhs?dy5qpjsY>SR!Ku{?@X<&0YG}$XTL!9NX7)5itt@19Wx??Z zd3IOZJGKtENO(UH>CB#+8e&rdXjOr;-D7@?iGd0RIXhsr$H5X@H~G5V4)=As!AoTU z%L{DFpb)hBCZ=cx#vrJmNfur?VM;c+O>VFq z&M+68s}vdx#7!<{)h!!1yumo+frUf7RLtFYPV7nQ!iB(6CSS*;)S*K&BzEuj|D^&<*q4rM(V+@?v#x1`WL5Y%(ii8~K_t6e_hW;6zr~P~A1vII zX+Xf|&m4^VgV5x#`vGIp(xh)jW~DujzqHVUYA8G1oJiXD3~oqMHek6)Pi2yn zCKokbligQRrdx*buJ93^q49|J*5ip$NQ!!ihqm6nhpW1OhTdxH<3{O4!t3yjOtC_O z+cT86Yc?tU{7PUBb+3&T>0w;D$qMy$$klS!z7TV^=6k&QJH!fV`|XgM1sHdVv-2vv zbT)Q=wcz+`+0IoHOSbRTe7NDVe`&<1XkR)asM^)a9I+BhUyWw6D62G<7px|? z?wX`Wmf>TmQpLu&&wsgwH{w;!G|2v30z0%>KL{WVVw&A?8mz?K!c)B5T6QOme4ABn zRM~rvI;GmZ({{)M?jA$@kdozxc+y6gG`wd&F;#{^EGG4_>+rd(SSm9)SvJM}av_^gRALiG{m#^x;^p23%8Y+Q<z>mh+r-C}7PMha2L3=TWATK%Gl zuQ8;8&4*f67h@DuOZGi-Y+iMDwR^v^MC2VvXS|{3%tpGhT0#n$tLNE{H{4?u5pyjo4xZ%!Z|z76a1njp}Aos*;IK!^y0f7IP9;j@SJWVgrk`a3+5;_F{U9)neAs z!srKtp$j2aXT!<{Bs}6=g{OT;D?U%*qsi{AV}5dm`pu`P0V&eK_qY0 zwe3pP{c5E;=iz#hsFKs?nsc!Vcz>7ZpaO&EhUv1u>+6`?{{GI57Bn=FpkCfmbfSqo z(zch>?Rsf7#5ujtS*J6Of5duhm1aPE`%rekQ}m{iS%_ZAs;&2O3S-s1farpij{ak5 z_b?M%Te7lp4l$a%@$`pQ&aZn{&0KYB!VOfN1>zI2zBq|B<^ z8)1k}>Qp?J*WTYv6H+LxjAC~UN}ms{JU+TgxJs#xDodrxPS6O7yH#jdW}m8B1BiyH z$wL&{teC+pND^FE9PL}|^Linf0>2@CcbR=335M6Hak0b6q#3?5ixGRt4ABH^4NWzH z@i_pI$Z(-Qa?gnP@Zd7iP09u#w^tuEzzkX(y_W7c9>mfd^V2mKy5^5J2wWwxn0rK@ zVJprDS7r!l-fm8Al$xKjCbM=($34_Hz zP;pu7VKurS2C%r!E0~gop#Gc9%2z-`QX(pDVIN!KU1BB|a!;@?Tn3vqwGi?A=vUv^ z5iR0}9`-K&%*og@iCP4CO~Qf>Q*@Z*-%ZbDd`@OJdS3zNp-_%F@(0Rl_1tikadO8GND&BA&x=C zmtW{B4}%ksfof(H@-_QZwkn}eE(VmgQYNhqzi2@7LjUcitZ&{bN2N=`U^DNopuJrHzR;k=e_<#L@Q$ zM|Hm`RaV*0__nb@ih8gnSNcRbnywuyBMO6)(zi*NG;W65PiEgJCd@ zaIEKF&ay3~it}x&^Lm9{Qy0U}QIadgn$#oV!sE?x(!)$2aZMZA%VE)OgzYy~8ZSk? zk$GB+p*7Y|^oE~Ojq9N^QSu9Y>NLe~H{~g*k_U6$7sybVNfUTT&2(cdsq;IXYsUss zt(~`+()*Ee2?izg=UTN_#p}ezSd)LcWm}jBUL3&k_~0oXQB-D|I;m|+B%hi$AOp&G zezVJ@b4a%m%>tia_BI_!6J4!5;jBXnuFPY+h_^7IoVH~IEOt_CT`Tmy9j9aF8``dq zpSC5qR=BPH*R@DngA?rbBJ`!p3tyDFOcXzSTm8Q6{jN1LfqRoENoyeA`pdkVG zL(_b=HuU|8w`u&teyG=v;=l?_m6ANp&CBegUB^nd)r)9(*Hu4l5eY%;c zWxqV7<*9w6yq)d!HbfXz=r0M7#45agY5U>dF0F`pQAgT{a2bMsza;f}mG~^Z?Lc+g z)Y8)tzeVu2)$t=*#NbU##zc}k1^))DNAim6s>C#Xpp}pirgT-3@^+riX!EE0+^%1S zuNn`Q(h;5#{uQZh`1zZS?^dcGuex{9`|(VDTJ=;=+6-ISpRP<| zlscajc_{WI%B($4xJ@j{1m$v{{+U?a>Uy?Sn&eZ}8-w#pv(EY;88J!~lDUF1!!&hI zb>rtp+q6c-W@iiBsfM2Vsev)<0+qx9FDHU6WoUGNFj|vBay27_EG7*)uZTuXdg*{N zY@z!>gg|}1l6<=>{p8~6?iOV0e|Zbv$3G z);vbDHg~I-)0MEL2sF4lH2(V`oA6!VOgTy2I`3p32M%yAC?{Q@~Zq z84XS$U+h_nm_y->f<=nCLpADyv0w4UN&r-wVrokNgfO>Ac7kMAy`T&#yJS7>O&q+_ z1N^P4t%+2h2~8SO(cnrq>obw&}J>=>*N)K|FmP zI6d5GDX#aNK`h|Xkn0`%HbJYd4p>>5Z}7`s*8H|CYcGz&YLN;LxH-c{bHRFv6CGBIZqB{yLg8K0&$P-EbERa^%0|msReipOfnNscipY$9 zUn?F}*tdsrSpth~J$QBZ5B+5dbqv(%%5sC>Q3+9o#wf{;<|=0edzlYzfAcOGj|GQ; z+~M40BwbW;SJYHbZuhgDN)n8>(!w}WfS`0!sC5V>;5}ZPnVCJ0FH{;8pv^KZSf4N3 zK75CL=KeHuzT3=!0n)S_RUu&>VoV)P*30I#pyH8FSW90&y|&bzwU+6I>sbmCSS6p9 zW~abd!e)^v)`qk;uF$4C;>Gn!vt3hKR7$66x|j)4oau?$c*?EqSjnn*lKTTWm`38- zb(Wh&o2ddMTu53NV{Mc5J;iK2NO{;)uRMhcye#e0#HEk$^olyfU@08h$fz{$_j5km{XqjI(Gnghs{n zDk@W{neJBGqmalJ)%qn*YG-INF?buyn#91!p-T(Vn%$Jkl=!ikTa<@S{}kefJ6sal zhYV^Ca^Qireh!m^l0jhtRKKRd$IngMXJM+Bu;@z{|z?86MG(&wvD zhSOa?tE z@}fGTV1Fk}mWFH;niq?l$oG1IvKHLPmQ6J!7nE_`_$+?-aq&|n3p zmO9J65rT~8Q5v#YHh}gY}D4+L4*sF<(Ft`wLPfWWZym!#wet><*G;J$&*M1H{ z`79e3Hu3|Z2)cL<_#bhq5PuDT0+DQukz3^pBbiz#v{K%dj|Ql0plJG{NTQ)lKJenx z8V#g?Lp+y}ftL}KF7udQQ^NluzNg$5C4bB}NZ^JiIXV4wt3#i-8Jd#nrz`LKcDJXK z$d>Y*F@=XGn~qWltb**yh)h#6diMdJ8aT_BIouHDuRvYC;yyOU4O?Pi@=|S z;-gYmt&|en$V?$n-#b!?_Ps&Y-suf2+$?;}~tP73_|D=~52*62?f%;DY#OSWl!27mNb77wV07jfcjyLH1nm=6e5E4h9OwO^ z=Px(K{l+2FthK?f2+Dwet|>KJdog98ogU2vGtNwqd;+*P4Q+6lilyKJD0oHxZ=c_d zO%0Lrtq5+e{l2mawxr6z)>LiLrjj%r|DvnpY#-3B+Pu({jO9F0dJ;U^4A<*!OwZy6w0vEaB55o}In+7*M>eq1C$@eopk(;GuR}t}nk99Ylk)g*QCqs+8ZvS9S73l@%y37GlV#!gA{ug?wrrkF(@=5?G&GL=d1m zl_N4Yg(Av3Yfs@tWUOF{j$jY4SM1&=ozJ=LAd)+@+rBS!`qS%3_O!n?nz!C!v8+sd z2#G@VnReLh$GT7G^TEiTx#8!|<9qgh|G1!x@D8UjKk?|vA+KttvPXrk+gVYkef$n* z$C4{d*Vo_<8Tm+C!D>E%`#o$VBCmr($m`2+GKO2w+{ile4A5 zI-`J3wSZI(5Q$iH?G1GhkYZRUAa0z@l##HNtl$B+;B^r*eg+QQ0-=CukO235|Za0!>i_XBGeBhbTpg<*3COD2tp4ZUcQ~s}?q-ApiPQZC|y7+iS$M2@}L>I$exL zSu|)?nFs+0bqwT&=Bin>BxVU+{go~^%?{3}? zmHx#GfT11(kp%M7{;4TB``dVLF31-sncO9oTFy zsLNXdh*@_~zZuL6dU2;SqHv<>ZZ5JRvH~|7K(=gGJz;bhJ=)11FLf~PTPIcOkCqDG zNwx0HFa+GmZl4uzyc`Tu4AqT1#i$Mk+e$wVhZjdbi&0H;qRehn&73RrFGQqTs~KNm zYX6dA-J*t(eTyoeJIP!%7KxUibi9U2#|x-*95EuE!aO~n6D55ZZfIsdzPvcg_>p6m zp&av_=lzN??KqHD$nbzEc7tt%--vGU@17!+9|Z9GFc?ILGvVigyUWm$9j5=tw@2x$ z7OKaMLk)f8dZtJrgV7O@G_%ixIx6w$ux_9=nd|zC1G{93>eYW9UixCWLnkeN6k$B+b8xlrz~up`C^?ZGw%62Uahl)I4Y6ufu7P* zfc21fYz4&-ptG73s2C=MpBw)SiqY+2HpvWgq_b{_f$&vQ>l{A)(WmOGDC}GLH;^r# zf7Twj-So#-caa(8pcFTtvOPf!kG{tgWg7T7zd> zOmlLTJL`&EUw#&CnzCLcWtW`cf2-MPdhD1js7ENcr`;u$a2MP;PzKOzm3;#YlYL&! z2o~A|A{y#>DXE~TVJyG5UmuXe*PYgSU`_8~@V;D5F@wPzvq9o#UF8rc!?V?_^Dx-v z=-R)~Tre>MrZSZE^^o$EeW`*s{9L3$+S1rqWXQM0)UhJ+SIN~SN%+*=$(6gY4wfM^ zgDaNe>3z{53k6VTq%PVlf0T5q#C{cCoq5#|ux%G3mYzS9cw>-M+n`|I&`Rmo*khzJm)#Y?O>OzBN!WLxEZvw{l+g3+f;!Ed9 ze6p&Y!^%^oScWO?gCANe_*}x*J+Q2oe}RoEb20|2%EX+?TR~M^S&rL2zTIlz_45Ppl!@-Ik z=^e}~2ZISVyU*c}5q|Eqp5M!D$EHd@__`Qm${0U)jmz^6PvX@sAE$=QzMK{8x4^m| zrw;2d{Am3wZd00d!<+dA=e$>knj&-jw(zyL_)`3ax zR;G2cN(qcNW*BOl7ulzo{?=8vtqbeeJk#R3qwU>FN*^26&U_C-^iS&J-gU5rPI*L8 z?QnX??8*X*IHh`!wUmCG=o#o{?Yr8Zb=jhev67f(gO)87;5KvVFH!F4P%Da*M z;I`=?iG`yWNr6HF*N%iF1K^49^{ z@*<<095nQ&ixQ34{Eu1{{j8q3P$uP?6LsRTRIc;HMVmScA;F4-b;uPdN+O}6o2q)1 zBG5D}P{eD?R7SpVmiMSYr6~c(<_1T=T;76^5-|k*f66IQ>73n;R|nRg40cmr-QGGsFzPLr+@OMjrv@t^m{B9Kj_T^=ApL2ZJg86zU&G)L^s)_vx z$fuc1D|)y3rkX5Su+tu(^obPu?2Z?d5wIQ<>`ggEIb7nEXjo*dN%sm*df7w|rJ8p1 zsm)rRh`C6oJWb=14dVJtNds-j1yrXRztSemUy8Z$m<+Kfj(3R;NuD?QE9P(#4rVw&j+o!}T1o{16QHW?bPrMREad$C_fmmpO z^?2tBqn^k`TzD!6%P@h8fcW4#7lG@2Jh=Lc`DGeb@EOdYLUoE(r#Bo7T$bm-7RzoW z%Kw=pY{RIqa1O+EC@plGDJ)phX+S(+yurb@#w&#!0Krv2l`^nL@xfe(98{?00G3s^ zw8<3n?VjFjVtQojB)Fl*Skk$!uX_mc>UksETgETYIq*1!TQ{l}G{YG=D0_ACB!kLPp=h}6mU znF2tDu3q;1{`31mzs&-pRC_j5C%6Rc_jN8cO0GaduSsOE`2ZUu#;zc-jn+JYvr^X4f*l2!BGM7f|c?D36=kwqZwHtg)O>EI-zl#s7 z!=Ryw==JI>}3nozW+@AG0WgV`_4gRi+{=j#T4PYqLfX7DTODiySs&Ph8g(E z>&Wf-fK78kh{1dSeg(+)#~^@pu=4~q0JcB|1O)qix2_dqlLF>e)!jaxy&6|aC;wK9 zDgB6TN*~m>!+PqU3(FLpRtF72698DG98bKkg3XJrDYM<8P9GqGGcgJ`J4q|79`#f; zt-F{+H0qzw3g~cj$!UCcdP)a*4WN);zXEjbG7&2=E@I&9#DWhHp5J9;ns&TZyhK*1 zE8#j|e9hJ1wAhm<+>D2Zb^~K!p(Hb_>a2BYVDO3teWzgxzDf-y;@Jo$wRa{zCbf#% z{XTD)ho5`c;msrkw9WwX1u094qjUr0#~6wz$&^`lG2$aeH z8~ea8=0ulhdzd|*6|hwSHa^CIEzms5fnZ=B4azFxJ9eH&HF8t5Ql?DdV}(xG9ixB6 zvo~Jm4w1b9!txYX`Lk|jzkFz(;~pngKdYqXeR>J8;Rp;%06mxZMu-M@RSv4& z8ox#V!aebjrNbm0&quGM{xC+@D>D!0GIR3)14>C>iB{b4dtR%<*$7Noj+G5An3_uf z<5%P*%s7~mLSL@|;YLAFI!=AQC#`CbndM}1rQp?{&az~$WdlREh*JPs#cVk}Wlcrj z;i`GSfxj|Pd~jeH4;X%y5bIPeJ!KIaTt zKn`7%)C=w>4#hd>i>F_5NyfZpPzu4=B+|4vq*{joqp}h}k>95mh-Zi9H4wlJbB7)H zd+Dv{F0tB(m90I1wzvD7T!Jy@gd@2$Mf?>f~UYOy0_k!5-+$KOQ z2dJE}y)NJc(@+g>bOW7H!x|d?u3_o~9xcU83353e>MT)?>73$Kay>B*3QoX$rMO{) zJz!G-K~5y;x?aDnu!FM8sZZJ*W%w7gP70vMxI0%^^Nec000L(iV!z^sTCP zi998xnOUW-6H_|yxb>kp5MY0cd1#XSI6YV&9gBM&mgETpvyU zCAr*aq$+{ySsJc0V4yy@T@@~TGrHrN?-nhOPXvr(;P4?*9Io<^wT?-kb~^cXF-&am zU$XdKs<%yyoIUpXT-j2QH2_?4y)FsLU%i?1W-j=is}`? zGX0on_zi!bcAD|Hk@F#BtH7o~?zi6u8#b#Jj?heFxW{#l?_2j#^EU(K-+6>0$~SuitozU|5cs>uUPIe)WBi;s04TS|Ay^DmP7rie>1GY zLLa2hH)!~OwniF8onQfa0$G+jD}H{{T`*3*;JD(Tj8!hMkm;N{d^~W*<#;5e(6$g% zysL>k90F|!=v)T`zxO20!hxQ|tt@bBUr*aXImA4AppoKVFJI+Igd=(IH(gKB0wMYYav8^ixiVg`J>`KHHoXL>jm0lRaLL!SiyEvY=b_v^PjGmPtg zH41vDXcI(!{0}I;*5loxzaQ=v_YxuciNaz$er zvOjK1ji5RK~yTw4DtsdK{?5Ex1li0q~QsdD`bJtLouM4c>| z{X?2#@3Jb_t>7t}VW?k-(j(!Gf9PM(A?f-EgJ$%1;t}Ekbxz|MCA~i5J%hCl2%m+> zFsLEcAI4T}Naa1qeE1CVCOz&6O2c;CWGp~M475bgQjASBt|-P~H5LQTUP+w=p69jtPq9$Z}gX1gI4UZ|W7RM>A}dpv6)9t>cLB_n0n z_|PSu_`PfF6{r4V6}JEu><=T2k$34=!_Z4+{;15Xx28Lry05=eO&BU)K`A^I0)%3_ z@cn&tb<0ypkO1wW2OA%J^z(~2nNS1>h0zf(I>J6qf7io*k_`V-W&((m^CPw^4zSR> zr|mA0VK8(igqvX>?Sc0-)GQakzbY13^#MHYO3ZZ(L89Q~psL6S*n?NdMwT(dJ zy)77(X(F4;j%|%^x;$%DG5)&ME^&FPkIQ9DS@$UXwOwIq6J)R7e-hl(97%OL9cJQ+=2|Uo1`LT4+lx zZEd>%&B}#7Y3KRWv-&B)A=(|30LGT0jf$nvoY6BDtw6Gn+?Y3HK=i>QWsQeoIy{D) z`xCQ6@vmfjvT#QC99HJyR{g4sL^TF|bkruI9qh5Vpv8Wi0eWPxG;Gg4Pq%Wk#^5dj zHPx&6X!=pQC?FIL(y0KmQZx7&G3?>o#(5%@9dm_nJD*P#nRdGw-(;H1VruOZA+R(( zjgh-U5vCZ~yDn3=clYY!VWZEXJ;%RQG$luRGhG-K6U|id;DPxwB2hS>r~O;#%zh<0 zlUI`Y?mloxK8%{AmJj#$k?V}h;qH9Ca6@-blD~ExQ>2ZGYxRkgY`aELxjK-AQohkO zr9_p-BeiMPS(}<>l%`M>Hlc`%oL~Neckw{(?p>!rfEGpMv7s!{SW5hTX>kDp*O9MH z(z@y%*<*+2dVZAOJGKj1r|e&s3%quKGfTuYu#S^MId*B--%oMoos{dDOYIWUnuN%;ZeOZu*EmFzEw@{ zpy+f-kB;X>dN;%#>=E*O8kA-#X%6@UwKJ)Rbgi~db|q5QjefW|SE3-AP4+yD7Gv%S z<7zPd{v!pmqS%7m< z_yWhT+h==yJ{&WDt)G5WyWUzNym8_NPp`c&5{+6I?E*LKk{)A9 zn3Qi=S`?2LZ2)h}7)W6I+{OpJWCac9D$3cW@rD|G&*UoJnwcRs zKlO65HRn@=Bb4H1Ojher$m8>3%z!>zkX$($V;&@ls0d5q*JjM^u0u_s_;@sFYIB_& zxtN+oicp#^t=AfylCm{h8uyg_<7(?+xt4 zIvbf;qkMDs$7zlZ=7MennnLtSzan_4h{GnTcxk$-b%%V`(jUK$IIct|Vtc-Hw|9a9 zk7C^R9Y!IhFuc+@6e9b>M88)WQ;XP;x5w#Ht2(KBKBAvAA21f=`>^l;GCV1->W>iA z2P}@bJO*5U$Yoyg9@eBfo`!$<X_hA%JSOO}{aHV`d+Tz6!fzy>({-P~0$_7dbVe?TrRjy}I}{C)1SKF;xBU6tKAHuu==LuGjYm~`mnye*m&R6H*% zMu`rn3=Lqn;Apy*m+c9p45=$!<|#PCBMs{CtQ+Q;CRGU z=m0~525j633+Mt5k?#XZX-@6_KbnEWtQSHPcCvrUs|Vx|k*%s8mQI0AuI4$7FXNle zeEh7P3e3kq;8m*TRuyoI7!_0g_N`?-%twg=t_FgAnojwQUj7~N?iaj!I;DvS=B>ANUNW#Vu&~*WY@uf9bcpSw=KJHSxTzB!Qh_j?H0a1x{kIB>|e`#O_ z4c;@Ocmhq!nkPPi^JTJ-TnPuJl;N4j?=40<4Z|YV={p}pM-yiwNUvu8pC<%QoLP|n@P06_wLbv* zQ{Zn-o9^$qPHZ3oZanM}_hqC!s!z{A91}b>Ia4~F-`>i+$k$eNrZmO-#L=E zdj*=h+jxMf+Yej4Z1y_>uvUAvs!mx$GM`!^WOM*))CATDToFjar=yl23;(ypr~d*M z3SC>HErG<_1&9OniRh^@kSwB2;;)+$6$;C|=&fMBI%tvxNIWmUl_h_A3Xmq@pCCDy z0Sm>ALbFaJG^Zs)@qN@N?RX$Q0C0zv8xjISV#vy75lKIWH6&S*W5xh`fc;P%vg$97 zYz3qpkk8S#TYsb+G^0T&xBf!dV?gvFy+1!z=60b@k(Ug_(|?298K#sJR%s`BU5yl2 z74YN0&c)%fKyvMS*-t_(vSt(coyKnGz%ylD8_SFS{w%GvPo4^9H2Yuyr+xk3TCRaH zUy$=*XqADa2krZ&q&rbR$&=`p0=8b|7Pg`;)7-`tMw=c3_5(++25ZOgg zWcz^FJBiOWNyjEe7b43MV<0EML=SP3A>i=W6Nf>d30t7Nuxs3jC&Zm}K-@{a#^1so ztC%~z&rRK}zo%@{Vqu*=@>b3k*N-_(~c;afZix)?Bs^=fT{A>?u)sya5+3t|rS*SspH?)Za4TMa#z z)@CtVkn3%7lnyVjq1)EXF*d)}hu>yZYm7YlAie!(Mp~t`65ZQ(Z&g+LV6(p!Vo%mM zP#uWq0E`5Pg}q;hWBrdQZ6b;)V)=%j4FY?=BD1 z&L1w1pi>!nUSB$FyyXmOzk)6DKE z@*A2$evgy;5(?6VC-wl5I3)0|n=t`T7O>@=^eD=($tu^K97sw8T{qNW?J76G%8bB< z!b1OF_&uU!jldZ{Lcr48)EM|fboM!LQM^cmJRl9I|IlAa$W}nL+bVdmMq6SRVb_Jd zAWGvk#A#jt8(62>D8lfMq$YTG~5jgILp{F1|*1l&=uWeJMME> z&JB;jw}qrNwWq8(mAS5)dqGBz*FZ~c28UPjPVbW0eG5>niXu+?-tZ2DxCrp#H-_=E zwj+a%xMoB>J7M4@!J$^b0gpIhU(kNEEyH@)?AklWPx5UlPtpr1>BChw$o zH%IiXTiVxos%&?X*PRXAp@<}B02#n9%bKtKGSe|)QNIN=pMXj2Cz+w`5lN&BeuRM9 z;CBX8;??cM#?VU?%E9i$rtK}7x;z8E|F)(6aX!s*5r{bKWe))Yu^Gp=G3@FO;Z;&M z$U-5VF!aVWrZg^^s$@e^Z)i_JR0&|F2VFgW#}j#BrT;7Z%(p&3 zUKsly%Td^SIWpoq&7ysVmLgquD&uzC*^$%zKANY6VU}wK0CvkYJnWfL8sdAO6j*D8qDTTw&aRIV}a`wed;2 zqGZytH*gl5sQ!L`W;ZH~lU>PZIeBZfo7o|2zO9r&kkwy!ROfZz*)82j7{`O-J#r6= zLx5)S@y;58Id$)xz-60CKirD0u5C(F-LCN=(oC(3>QV~ue3UH&9#2)(Hvo!+|EuB$ zzyG-jgT(l{9H4sHWp)<0a4C=RmO3C&K|%ONa@SG--CDN`qq zUOD;LFvLbXyxm6i5J0hhSk*zbXrx2!&3CYYNEvCH1GrTS+r%Y45hC=I~x3T zAmk;$(rq^Vw)sQ!uQRmc<0-6s$)(q^lqbM&k!Fx$pK4}R>kPxx_5+i_;2kfJD%K{Y zO=bA-#(YVXJ0voeavx=)1Ux+}cOgO+#^ThvkvaXntK)h>zUV-fG@*;y~r5(8JA;M{=7A0rW}s<%$@fSDe!DpNR`$vSxux<#sW%Cw=MDBsOt* zViGux*y2sV8n(Ax;^LPzt&&>|#kKEm&>RFjfk9j)hb-KU%}}}8s%~SZ;~r?6z&DjL zpERcYsa|ino6ZD$!t4lQ$ix509k@*0jEl)GG(E5IxC@n}nHY3@>&{RQP7k5Zq6}IA z0Ll1qr(syrjuCQUwYB8&ydiR@Fuy)9P>Ohm-xXPd6ak$F;y#u%-8hlUVC-ZxjYN+2 zzrB>PDbDnbIL@F-L4?RQg#BL6C13l27v-4 z8XHS(1YMngeKah?LSBCO>ZEoSj!WwGS@Aahj!lmjB6RQH;<`7~Yc3^TdA}cl6pz&KbN|6oqV^9<31YT`au^hgbk13v5@9Xp*RRr- zzf||_Ib`f=lrv9Rolbv|m_I~TQ`^fMo}^_%9$fSrqH&bihCSMJjrW}iVu-H!NIxuo z>GKg$V#Ao0{Zk$Ngz$3}M&gX5^Zjn=!1=&TvZ9EUbv7`&qQ09}o>#340?rb8kzD8S;bNv^ zyorO+32yQ>RXbXZ(#=-?w=Uw6&swX`oAa}2`aA|Ga5RlYl2%4PtTJG$mHX&5rewMi*C+Ie~R ze*4}9|4&$)SQ~qCfj-w~YSv}Cvv5SjFw~QTBWcmF^a2FaCw6|=`Azkscq##INU^xW z6JO%Gc;=pqtx2i^Y(PE}!oR;}`$vmGZu1QUt!*{8L5<>q$pe3rpv=p=0Slff%9V_Z z$6zy%{m+;~wDz2|!g!-}xFMe9yW#I|=8|6+7hp2tf@wq?G8z+s)g1n3C!y2B@J8^g zh^vs_d7vuLcZhTcvT7_#fd^DbHvQY7ZT@2lBF!TN=v06nQJsb8krYr(`@z&B(R zRP8Q6)Km7AbS_FB4=5o`g6A+ePoZMEM$l6K9qr=XG7n57mZ-U}cG;9oFoU)756xtd z?!h5Ebo{<%sB{8v%Mfc>Goh&gg+!5eXfG*guV6xeo#poW3t|IblDx#0qo!uwm~2S) zvxZB8>x4F!L*qbJ2tecP__W{TE-;{Y>~W1DWOw+)ibE#gJMBMx_6FH`4W1}Qugs|M zr~S1TXeo#R_Sq|-EFvURXSs6U;aoFE6A~Xns$&P+cT90WF zG+O3-4JNYYuB`-5MgWIp&OFVU?VUXEX;H~0rg>d4So(=XSXys-XV{F z+s>&r(O+>KfM}e&@uMI|-D~*CB7i}@?l0~m3O1D%Av7C5xydG;Vq|!_**(}J^APtR zM2yW>*&7)-Ka9ZbJtKeIW~NKUoDhs_yWSa*?2}gBAAitRwFje+E z@mH%Zp~R*d7mfYDW$((AMrVN5^9v-LIol%Qnv*;B4(OLk5`~8)%qbhe@c^jm{ebo$ zw1FQOl%Nf3+}sT~GtZ$3E5Qn<#ZmVse!VTB*)OmQP4O^N3H z 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 Kl)iD#(fnxLkiVz?;B7_hG0U45@w52U53Ys8O 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 F{{^$Application.Run. ViewerProgram owns the loop for all /// three heads, and keeping it that way means the scroll amplification, the button lookup and the /// close-means-hide rule stay in one place. DoEvents is usually a smell, but the conditions -/// that make it one are absent here: no modal dialogs, no nested message loops, and session state -/// already behind its own lock. +/// that make it one are absent here: no modal dialogs, and session state already behind its own +/// lock. user32's own modal loops - a scroll bar thumb being dragged, the window being moved or +/// sized - do hold the thread inside DoEvents, and is how frames keep +/// coming while they do. /// ///

-sealed class FormsViewerWindow : IViewerWindow +sealed class FormsViewerWindow : + IViewerWindow, + ILoopHooks { /// /// Roughly sixty frames a second, which is what the shim's SetTargetFPS gives the other heads. @@ -75,6 +79,13 @@ public bool Present(Screen screen) /// void Wait() { + // Input already waiting is the next frame's, now: a key and a click that land together are + // two frames, and sleeping between them would put the second a frame behind for nothing. + if (form.Pending) + { + return; + } + var timeout = form.Visible ? frameMilliseconds - 1 : hiddenMilliseconds; MsgWaitForMultipleObjectsEx(0, IntPtr.Zero, (uint) timeout, allInput, inputAvailable); } @@ -89,6 +100,16 @@ void Wait() public ViewerInput Poll() => form.IsDisposed ? default : form.Drain(); + public Func? Frame + { + set => form.Frame = value; + } + + public Action? SessionEnding + { + set => form.SessionEnding = value; + } + /// /// Visibility only. Assigning ShowInTaskbar recreates the window handle, and doing that under /// a loop that is pumping with DoEvents means tearing the handle out from under an in flight diff --git a/src/DiffEngineViewer.Windows/ImageCache.cs b/src/DiffEngineViewer.Windows/ImageCache.cs index 62533991..7fd2324b 100644 --- a/src/DiffEngineViewer.Windows/ImageCache.cs +++ b/src/DiffEngineViewer.Windows/ImageCache.cs @@ -1,7 +1,14 @@ /// /// Decoded pictures for the panes, keyed by the path the screen model handed over and invalidated /// by the file's write time and length — the same freshness test the queue poller uses, so a re-run -/// that rewrites a received image refreshes the pane rather than leaving the old one up. +/// that rewrites a received image refreshes the pane rather than leaving the old one up — and by +/// the content hash the model carries, since a same-length rewrite inside the file system's +/// timestamp granularity looks unchanged to a stat. +/// +/// Only what the current screen shows is kept (). Every picture ever drawn stayed +/// decoded otherwise, for the life of a process the tray can keep hidden for days: ten accepted +/// 400 by 300 pairs held 9 MB of unmanaged memory the collector does not see. +/// /// /// A cache and not a convenience: OnPaint runs on every wheel notch and every resize, and /// decoding a picture per frame is what turns a window that is merely showing something into one @@ -16,9 +23,20 @@ sealed class ImageCache : IDisposable /// A null is a remembered failure. Kept rather than dropped, so a file /// this machine cannot decode is attempted once instead of once per frame. /// - record Entry(long WriteTicksUtc, long Length, Image? Image); + record Entry(long WriteTicksUtc, long Length, string? Hash, Image? Image); + + /// + /// Drops every picture not at one of , which is what is on screen. + /// + public void Keep(IReadOnlyCollection paths) + { + foreach (var path in entries.Keys.Where(_ => !paths.Contains(_, StringComparer.OrdinalIgnoreCase)).ToList()) + { + Forget(path); + } + } - public Image? Get(string path) + public Image? Get(string path, string? hash) { long ticks; long length; @@ -45,7 +63,8 @@ record Entry(long WriteTicksUtc, long Length, Image? Image); if (entries.TryGetValue(path, out var entry)) { if (entry.WriteTicksUtc == ticks && - entry.Length == length) + entry.Length == length && + entry.Hash == hash) { return entry.Image; } @@ -54,7 +73,7 @@ record Entry(long WriteTicksUtc, long Length, Image? Image); } var image = Load(path); - entries.Add(path, new(ticks, length, image)); + entries.Add(path, new(ticks, length, hash, image)); return image; } @@ -65,7 +84,7 @@ record Entry(long WriteTicksUtc, long Length, Image? Image); // Decoded from a copy of the bytes and then copied again. GDI+ holds on to the stream // it was handed for as long as the image lives, and a viewer keeping a handle on the // received file is one that blocks the accept it exists to perform. - using var stream = new MemoryStream(File.ReadAllBytes(path)); + using var stream = new MemoryStream(FileSide.ReadBytes(path)); using var decoded = new Bitmap(stream); return new Bitmap(decoded); } diff --git a/src/DiffEngineViewer.Windows/MonoFont.cs b/src/DiffEngineViewer.Windows/MonoFont.cs index 736d9692..654788bd 100644 --- a/src/DiffEngineViewer.Windows/MonoFont.cs +++ b/src/DiffEngineViewer.Windows/MonoFont.cs @@ -29,6 +29,17 @@ public static Size Cell(Graphics graphics, Font font) Math.Max(1, (int) Math.Ceiling(font.GetHeight(graphics)))); } + /// + /// Where one glyph starts after the last, unrounded. is whole pixels, which + /// is what the grid is laid out in, but Graphics.DrawString places glyphs at this advance. At + /// 96 DPI that is 8.8 against a cell of 9, so anything positioned by the cell - the selection + /// highlight, and the column a click lands in - was a character off from about column 22 and + /// two by column 66, and at 175% more than three. Measured over a run rather than one glyph, + /// for the precision a long line needs. + /// + public static float Advance(Graphics graphics, Font font) => + graphics.MeasureString(new('M', 100), font, PointF.Empty, Painter.Format).Width / 100; + static FontFamily Register() { var bytes = EmbeddedFont.Bytes(); diff --git a/src/DiffEngineViewer.Windows/ViewerCanvas.cs b/src/DiffEngineViewer.Windows/ViewerCanvas.cs index 25582c5a..e4a4d307 100644 --- a/src/DiffEngineViewer.Windows/ViewerCanvas.cs +++ b/src/DiffEngineViewer.Windows/ViewerCanvas.cs @@ -146,11 +146,28 @@ public ViewerCanvas() public void Draw(Screen value) { screen = value; + images.Keep(PicturesOn(value)); // A new screen renumbers the rows, so a kept index would describe a different entry. tips.Forget(this); Invalidate(); } + static List PicturesOn(Screen screen) + { + var paths = new List(2); + if (screen.Left.Image is { } left) + { + paths.Add(left.Path); + } + + if (screen.Right.Image is { } right) + { + paths.Add(right.Path); + } + + return paths; + } + Size Cell { get @@ -159,12 +176,34 @@ Size Cell { using var graphics = CreateGraphics(); cell = MonoFont.Cell(graphics, font); + advance = MonoFont.Advance(graphics, font); } return cell; } } + /// + /// Where glyphs actually land within a line, for anything placed under or against them. The + /// cell stays whole pixels for laying out the grid. See . + /// + float Advance + { + get + { + _ = Cell; + return advance; + } + } + + float advance; + + /// + /// The pixel offset of a column into a line of text. + /// + int Offset(int column) => + (int) Math.Round(column * Advance); + /// /// Everything drawn here is laid out in character cells, and a cell is measured in pixels from /// a Graphics, which is per display. Dragging the window to a display with different scaling @@ -271,7 +310,7 @@ int ScrollTop(PaneSide side) => /// pointing at is the one they mean. /// int ColumnAt(int x, PaneSide side) => - Math.Max(0, (x - TextLeft(side) + Cell.Width / 2) / Cell.Width); + Math.Max(0, (int) Math.Floor((x - TextLeft(side)) / Advance + 0.5f)); /// /// The body row a point is on, clamped into the body. Used while dragging, where a pointer @@ -348,7 +387,7 @@ void DrawImage(Graphics graphics, Pane pane, int left, int width, int bodyTop, i return; } - var picture = images.Get(image.Path); + var picture = images.Get(image.Path, image.Hash); if (picture is null) { return; @@ -427,7 +466,7 @@ void DrawTitle(Graphics graphics, int lineHeight) return; } - var width = screen.Subtitle.Length * Cell.Width; + var width = Offset(screen.Subtitle.Length); Painter.Draw(graphics, screen.Subtitle, font, Palette.Dim, Cellular(Width - padding - width, padding, width, lineHeight)); } @@ -487,9 +526,9 @@ void DrawRow(Graphics graphics, Pane pane, int index, Rectangle bounds) Painter.Brush(Palette.Selection), Rectangle.Intersect( new( - bounds.X + gutter + row.Selection.Start * Cell.Width, + bounds.X + gutter + Offset(row.Selection.Start), bounds.Y, - row.Selection.Length * Cell.Width, + Offset(row.Selection.Start + row.Selection.Length) - Offset(row.Selection.Start), bounds.Height), bounds)); } @@ -595,6 +634,14 @@ int QueueRowAt(Point point) protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); + // A move with the button up is a drag whose release went somewhere else - the button let go + // over another window after an Alt+Tab, say - and not one still going. + if ((selecting || dragging) && + (e.Button & MouseButtons.Left) == 0) + { + EndDrag(); + } + if (selecting) { // Against the side the press landed in, whatever the pointer has wandered over since: @@ -649,6 +696,26 @@ void ApplyTooltip(Point point) protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); + EndDrag(); + } + + /// + /// The mouse was taken away mid drag: Alt+Tab, the Windows key, a UAC prompt, another window + /// grabbing it. Only the window holding capture hears the button come up, so without this the + /// selection followed the pointer with no button held, and the splitter dragged the queue + /// column along, until the next click happened to land here. + /// + protected override void OnMouseCaptureChanged(EventArgs e) + { + base.OnMouseCaptureChanged(e); + if (!Capture) + { + EndDrag(); + } + } + + void EndDrag() + { if (dragging) { dragging = false; diff --git a/src/DiffEngineViewer.Windows/ViewerForm.cs b/src/DiffEngineViewer.Windows/ViewerForm.cs index 998ac9e7..75343a01 100644 --- a/src/DiffEngineViewer.Windows/ViewerForm.cs +++ b/src/DiffEngineViewer.Windows/ViewerForm.cs @@ -91,12 +91,35 @@ sealed class ViewerForm : Form Point? menuPoint; Screen? last; - CommandKind key; - int clickedButton = -1; - int clickedQueueItem = -1; - int rightClickedQueueItem = -1; - int clickedMenuItem = -1; - bool menuClosed; + + /// + /// Keys, clicks and menu events, in the order they happened, one handed over per frame. + /// + /// A slot per kind used to hold them: two presses of Down between frames scrolled once, and a + /// key then a click were applied click first. That is not an edge case when a frame is slow - the + /// loop waiting behind an accept on InlineApplier's mutex - and d pressed on the entry being + /// read and a click on another row then discarded the clicked one, which the reader had never + /// looked at. With a, it would have been accepted into source. + /// + /// + readonly Queue discrete = new(); + + readonly record struct Discrete( + CommandKind Key = CommandKind.None, + int Button = -1, + int QueueItem = -1, + int RightClickedQueueItem = -1, + int MenuItem = -1, + bool MenuClosed = false); + + static readonly Discrete nothing = new(Key: CommandKind.None); + + /// + /// Whether input is waiting for a frame, so the loop takes the next frame now rather than + /// sleeping until one is due. + /// + public bool Pending => discrete.Count > 0; + int scrollTo = -1; int scrollDelta; bool closeRequested; @@ -131,12 +154,34 @@ public ViewerForm(string title, int width, int height) // Scroll rather than ValueChanged, which also fires for this class's own model driven // assignment and would turn every wheel notch into a round trip fighting the clamp. - scrollBar.Scroll += (_, e) => scrollTo = e.NewValue; + scrollBar.Scroll += (_, e) => + { + scrollTo = e.NewValue; + // The thumb is tracked in the scroll bar's own modal loop, from the first ThumbTrack + // until the release + if (e.Type == ScrollEventType.ThumbTrack) + { + EnterModal(); + return; + } - canvas.QueueItemClicked += _ => clickedQueueItem = _; + if (e.Type is ScrollEventType.ThumbPosition or ScrollEventType.EndScroll) + { + ExitModal(); + } + }; + modalFrames.Tick += (_, _) => + { + if (Frame is { } frame) + { + Apply(frame()); + } + }; + + canvas.QueueItemClicked += _ => discrete.Enqueue(new(QueueItem: _)); canvas.QueueItemRightClicked += (row, point) => { - rightClickedQueueItem = row; + discrete.Enqueue(new(RightClickedQueueItem: row)); menuPoint = point; }; canvas.Scrolled += _ => scrollDelta += _; @@ -151,7 +196,7 @@ public ViewerForm(string title, int width, int height) // this is the only thing that brings them back. if (e.CloseReason != ToolStripDropDownCloseReason.ItemClicked) { - menuClosed = true; + discrete.Enqueue(new(MenuClosed: true)); } }; } @@ -163,15 +208,110 @@ public ViewerForm(string title, int width, int height) protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); + if (!sized) + { + sized = true; + ClientSize = InitialClientSize(ClientSize, DeviceDpi, System.Windows.Forms.Screen.FromControl(this).WorkingArea.Size); + } + ScaleChrome(); } + bool sized; + + /// + /// The size asked for is in logical pixels, and the window is per monitor aware, so it is + /// scaled to the display it opens on - once, before it is shown and centred. Unscaled, it was + /// 1100 by 700 device pixels while the text grew with the display: at 200% each pane had room + /// for four characters. Moving to another display afterwards is Windows' to scale. + /// + /// Kept inside the working area, which a scaled window can outgrow: 1100 by 700 at 150% is too + /// tall for a 1080p screen once the taskbar is taken off. + /// + /// + internal static Size InitialClientSize(Size logical, int dpi, Size workingArea) + { + var width = logical.Width * dpi / 96; + var height = logical.Height * dpi / 96; + // Room for the frame and title bar, which are outside the client area + var maxWidth = workingArea.Width * 9 / 10; + var maxHeight = workingArea.Height * 9 / 10; + return new(Math.Min(width, maxWidth), Math.Min(height, maxHeight)); + } + protected override void OnDpiChanged(DpiChangedEventArgs e) { base.OnDpiChanged(e); ScaleChrome(); } + /// + /// One frame of the loop, run on while user32 holds the thread in a + /// modal loop of its own. See . + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Func? Frame { get; set; } + + /// + /// See . + /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Action? SessionEnding { get; set; } + + /// + /// A WinForms timer because its ticks are window messages, and a modal loop - the scroll bar's + /// while the thumb is dragged, the frame's while the window is moved or sized - still + /// dispatches those, where it never returns to the loop that called DoEvents. + /// + readonly System.Windows.Forms.Timer modalFrames = new() + { + Interval = 16 + }; + + void EnterModal() + { + if (Frame is not null && + !modalFrames.Enabled) + { + modalFrames.Start(); + } + } + + void ExitModal() => + modalFrames.Stop(); + + const int enterSizeMove = 0x0231; + const int exitSizeMove = 0x0232; + + protected override void WndProc(ref Message message) + { + if (message.Msg == enterSizeMove) + { + EnterModal(); + } + else if (message.Msg == exitSizeMove) + { + ExitModal(); + } + + base.WndProc(ref message); + } + + /// + /// Persisted here, synchronously, when the session is ending. WinForms closes the form inside + /// WM_ENDSESSION, and Windows may end the process as soon as that returns - before the loop has + /// even noticed the form is gone, let alone got through its own shutdown to the staging. + /// + protected override void OnFormClosed(FormClosedEventArgs e) + { + if (EndsTheSession(e.CloseReason)) + { + SessionEnding?.Invoke(); + } + + base.OnFormClosed(e); + } + void ScaleChrome() { footer.Height = LogicalToDeviceUnits(40); @@ -262,7 +402,7 @@ void ApplyMenu(Screen screen) } shownMenu = menu; - ViewerMenu.Fill(contextMenu, menu, _ => clickedMenuItem = _); + ViewerMenu.Fill(contextMenu, menu, _ => discrete.Enqueue(new(MenuItem: _))); contextMenu.Show(canvas, point); } @@ -280,7 +420,7 @@ void ApplyButtons(Screen screen) // the OS build's theme renderer does with a Win32 button. FlatStyle = FlatStyle.Standard }; - button.Click += (_, _) => clickedButton = index; + button.Click += (_, _) => discrete.Enqueue(new(Button: index)); pool.Add(button); buttonRow.Controls.Add(button); } @@ -304,19 +444,25 @@ void ApplyButtons(Screen screen) public ViewerInput Drain() { var drag = canvas.TakeDrag(); + // Not default: that zeroes every index, and zero is the first button and the first row + if (!discrete.TryDequeue(out var next)) + { + next = nothing; + } + var input = new ViewerInput( - Key: key, - ClickedButton: clickedButton, - ClickedQueueItem: clickedQueueItem, + Key: next.Key, + ClickedButton: next.Button, + ClickedQueueItem: next.QueueItem, ScrollDelta: scrollDelta, CloseRequested: closeRequested, Columns: canvas.ColumnCapacity, // ScreenBuilder subtracts Chrome to get the body, so adding it back asks for exactly // the rows the canvas can draw rather than a guess from a fixed cell height. Rows: canvas.BodyCapacity + ScreenBuilder.Chrome, - RightClickedQueueItem: rightClickedQueueItem, - ClickedMenuItem: clickedMenuItem, - MenuClosed: menuClosed, + RightClickedQueueItem: next.RightClickedQueueItem, + ClickedMenuItem: next.MenuItem, + MenuClosed: next.MenuClosed, ScrollTo: scrollTo, DragSide: drag is null ? -1 : (int) drag.Value.Side, DragAnchorRow: drag?.AnchorRow ?? 0, @@ -324,12 +470,6 @@ public ViewerInput Drain() DragFocusRow: drag?.FocusRow ?? 0, DragFocusColumn: drag?.FocusColumn ?? 0); - key = CommandKind.None; - clickedButton = -1; - clickedQueueItem = -1; - rightClickedQueueItem = -1; - clickedMenuItem = -1; - menuClosed = false; scrollTo = -1; scrollDelta = 0; closeRequested = false; @@ -389,7 +529,7 @@ protected override bool ProcessCmdKey(ref Message message, Keys keyData) return base.ProcessCmdKey(ref message, keyData); } - key = command; + discrete.Enqueue(new(Key: command)); return true; } @@ -457,6 +597,7 @@ protected override void Dispose(bool disposing) if (disposing) { contextMenu.Dispose(); + modalFrames.Dispose(); } base.Dispose(disposing); diff --git a/src/DiffEngineViewer/FileSide.cs b/src/DiffEngineViewer/FileSide.cs index 61719abc..d78fd966 100644 --- a/src/DiffEngineViewer/FileSide.cs +++ b/src/DiffEngineViewer/FileSide.cs @@ -33,10 +33,10 @@ public static FileSide Read(string path) var stamp = new FileStamp(info.LastWriteTimeUtc.Ticks, info.Length); if (!ImageExtensions.Is(path)) { - return new(File.ReadAllText(path), stamp, null, null); + return new(ReadText(path), stamp, null, null); } - return new("", stamp, null, ImageFile.Read(path, File.ReadAllBytes(path))); + return new("", stamp, null, ImageFile.Read(path, ReadBytes(path))); } catch (Exception exception) { @@ -51,6 +51,32 @@ public static FileSide Read(string path) static ImageFile? Unread(string path) => ImageExtensions.Is(path) ? ImageFile.Unread(path) : null; + /// + /// Every read of a pending file shares it with writers and deleters. A test process rewrites + /// or deletes its received file on every run, and an accept moves it: opened with read sharing + /// alone, a read that happened to overlap either failed it with "being used by another + /// process", and the accept-all worker does not retry. + /// + static FileStream OpenShared(string path) => + new(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete); + + public static byte[] ReadBytes(string path) + { + using var stream = OpenShared(path); + using var memory = new MemoryStream(); + stream.CopyTo(memory); + return memory.ToArray(); + } + + /// + /// As File.ReadAllText reads, byte order mark included in the detection, over a shared stream. + /// + static string ReadText(string path) + { + using var reader = new StreamReader(OpenShared(path), Encoding.UTF8, detectEncodingFromByteOrderMarks: true); + return reader.ReadToEnd(); + } + public static FileStamp? StampOf(string path) { try diff --git a/src/DiffEngineViewer/ILoopHooks.cs b/src/DiffEngineViewer/ILoopHooks.cs new file mode 100644 index 00000000..9620d0f2 --- /dev/null +++ b/src/DiffEngineViewer/ILoopHooks.cs @@ -0,0 +1,28 @@ +/// +/// For a head whose toolkit can hold the loop's thread where the loop cannot see it. The loop in +/// runs one frame per , and on +/// Windows a present pumps messages - which is where user32 runs its own modal loops, for dragging +/// a scrollbar thumb and for moving or sizing the window, and where a logoff ends the session. The +/// loop's next step never comes in either case, so the head is handed those steps to run itself. +/// +/// Optional, and only WinForms takes it: the native heads pump their own events and have no modal +/// loops to be caught in. +/// +/// +interface ILoopHooks +{ + /// + /// One frame of the loop, for a head to run on a timer from inside a modal loop: polls the + /// window, applies what it reports, and returns the screen that results for the head to draw. + /// Without it the panes froze until the thumb was let go, and a resize redrew the old screen + /// into the new size until the mouse came up. + /// + Func? Frame { set; } + + /// + /// The session is ending: stop taking arrivals and stage what the queue holds, before + /// returning. Windows may end the process as soon as a window has answered the message that + /// says so, which is before the loop would get as far as its own shutdown. + /// + Action? SessionEnding { set; } +} diff --git a/src/DiffEngineViewer/ViewerProgram.cs b/src/DiffEngineViewer/ViewerProgram.cs index bc14a3f3..d2850211 100644 --- a/src/DiffEngineViewer/ViewerProgram.cs +++ b/src/DiffEngineViewer/ViewerProgram.cs @@ -226,6 +226,16 @@ internal static int Run(SessionHost host, ViewerServer? server, OwnerLink? link, return 4; } + if (window is ILoopHooks hooks) + { + hooks.Frame = () => ModalFrame(host, window, link); + hooks.SessionEnding = () => + { + host.Mutate(_ => _ with { Closing = true }); + PersistOwned(host.State, link); + }; + } + // Whichever of the two produces them; a process either owns the queue or displays one. var windowCommands = link?.Windows ?? new(); using var cancel = new CancelSource(); @@ -283,6 +293,22 @@ internal static int Run(SessionHost host, ViewerServer? server, OwnerLink? link, return 0; } + /// + /// A frame from inside a head's modal loop (): what the loop does + /// with input, without the present, which the head is already inside of. + /// + static Screen ModalFrame(SessionHost host, IViewerWindow window, OwnerLink? link) + { + var state = host.State; + var input = window.Poll(); + if (!IsIdle(input, state)) + { + state = host.Mutate(_ => Apply(_, input, link, window)); + } + + return ScreenBuilder.Build(state); + } + /// /// An owning viewer's queue lives in this process's memory, so exiting with entries still /// pending used to discard them silently. Staged instead, so accept tooling still finds them diff --git a/todo.md b/todo.md index 75416f5b..12c52097 100644 --- a/todo.md +++ b/todo.md @@ -18,52 +18,6 @@ Viewer model - Fix: have each head report string positions from its own layout rather than cells, or put every code point on the grid. -Windows head (measured in the test host at 96 DPI; this machine is 120) - -- [ ] **Selection highlight and hit-test drift from the glyphs** (repro at 100%, 150%, 175% and 200%; not at 125%) - - `Graphics.DrawString` with `GenericTypographic` places glyphs at the unhinted advance (8.798 px at 96 DPI), while `MonoFont.Cell` rounds it (9, `src/DiffEngineViewer.Windows/MonoFont.cs:26-28`), and the highlight (`ViewerCanvas.cs:486-494`) and `ColumnAt` (`:273-274`) multiply by the rounded width. Drift at column 66: −13.2 px at 96 DPI, +13.2 at 144, +26.2 at 168, −26.8 at 192. - - Tests: `CellAgainstTheDrawnAdvance`, `HighlightAtColumn66CoversItsGlyph` (the bar at column 66 hit-tests as 65). - - Fix as suggested, the subtitle width at `:430` included. The integer cell can stay for layout. - -- [ ] **`ImageCache` never evicts** (repro) - - Keyed by path and only replaced for the path asked about (`src/DiffEngineViewer.Windows/ImageCache.cs:45-58`); `ViewerCanvas.Draw` never prunes it. The process lives while the queue has anything in it, hidden or not. - - Test: `EveryPictureEverDrawnStaysDecoded` (ten 400×300 pairs, each accepted: 20 pictures and 9.4 MB of unmanaged GDI+ memory held, on a screen showing none). - - Fix: keep only the paths on the current screen. - -- [ ] **The initial window is 1100×700 device pixels under PerMonitorV2** (repro) - - `ViewerForm.cs:115`, with `AutoScaleMode` left at Inherit, which scales nothing on a top-level form, while the 11 pt font grows with DPI. Characters a pane with a queue showing: 34 at 96 DPI, 23 at 120, 15 at 144, 4 at 192. - - Test: `WhatTheDefaultWindowHoldsAtEachScale`. - - Fix: `LogicalToDeviceUnits`, clamped to the working area, since 1100×700 at 150% is too tall for 1080p. Of the pixel constants only `grab = 4` matters. - -- [ ] **Discrete input overwrites itself within one `DoEvents` and is applied in a fixed order** (repro) - - One slot per kind of input (`ViewerForm.cs:94-101`), one `ViewerInput` per `Drain` (`:304-337`), applied as the click chain, then buttons, then the key (`ViewerProgram.cs:440-524`). It needs a slow frame, for example the loop waiting in `host.Mutate` behind an accept on the mutex. - - Tests: `TwoKeysInOnePumpAreTwoCommands` (two Downs scroll once), `AKeyThenAClickInOnePumpAreAppliedInTheirOrder`: d pressed on one entry, then a click on another, discards the clicked one, which the reader never looked at. With a, it would be accepted into source. - - Fix: queue them and emit one per `Drain`, without waiting while more are queued. That also fixes the next item. - -- [ ] **Right-clicking the row whose menu is open leaves the popup and the model out of step** (repro) - - The menu filter closes the popup (`ViewerForm.cs:144-156`), the model keeps an equal menu (`ViewerProgram.cs:496-500`), and `Apply` returns before `ApplyMenu` (`ViewerForm.cs:206-209`), so right-clicking that row does nothing until something else changes the screen. - - Test: `RightClickingTheRowWhoseMenuIsOpen`. Fix: call `ApplyMenu` before the early return. - -- [ ] **Dragging the scrollbar thumb, or moving or resizing the window, freezes the panes** (repro for the thumb) - - `Present` returns only after `DoEvents` (`src/DiffEngineViewer.Windows/FormsViewerWindow.cs:58-60`), and the thumb is tracked in the scroll bar's own modal loop. Move and resize rest on `WM_ENTERSIZEMOVE`'s documentation. The class comment's "no nested message loops" (`:7-9`) is wrong. - - Test: `DraggingTheThumbHoldsThePump` (one `DoEvents` took 560 ms; the panes jumped on release). - - A fix needs a way to run a frame from inside the modal loop, which `IViewerWindow` has no hook for. - -- [ ] **Losing mouse capture mid drag leaves `selecting`/`dragging` set** (repro) - - Only `OnMouseUp` clears them (`ViewerCanvas.cs:649-665`), and a window without capture never hears the button come up. - - Tests: `LosingCaptureMidDragEndsTheDrag` (the selection follows the pointer with no button held), `LosingCaptureMidSplitterDragEndsTheDrag`. - - Fix: `OnMouseCaptureChanged` acting when `!Capture`, and ending the drag when a move arrives without the left button. - -- [ ] **At logoff the session can end before `PersistOwned` runs** (verified) - - WinForms closes and disposes the form inside `WM_ENDSESSION`. The loop notices only after `DoEvents` returns, and `Run`'s finally then joins the listener and the watcher, up to 2 s each, before persisting (`ViewerProgram.cs:256-281`). The documentation says the session may end once every application has returned from that message. - - Test: `EndSessionReturnsBeforeTheLoopHasStartedToPersist` (`WM_ENDSESSION` returned at 330 ms, before `Run`'s finally had started). Only a real logoff shows whether Windows ends the process in that gap. - - The suggested fix is incomplete: the form has no route to the session. It must set `Closing` before persisting, so late arrivals are refused and staged by their senders, and must not wait on the runner or the joins. - -- [ ] **`ImageCache` ignores `ImagePane.Hash`, and reads with `FileShare.Read`** (repro) - - The key is the path, checked by write time and length (`ImageCache.cs:27-51`), and `DrawImage` never passes the hash (`ViewerCanvas.cs:351`). In the app, that takes a pair re-sent within the timestamp granularity. - - Test: `ARewriteWithTheSameStampKeepsTheOldPicture` (180 of 199 back-to-back writes here kept the stamp). Fix: pass the hash into `Get`. - - The file is held only for the `ReadAllBytes`: 0.1 ms at 100 KB, 2.8 ms at 10 MB (`HowLongADecodeHoldsTheFile`). The viewer's accept-all worker can overlap it and does not retry; the tray's move retries, its discard does not. `FileSide.Read` opens the same files the same way (`FileSide.cs:36, 39`), so widen the sharing there too. - Tray - [ ] **A failed bind on 3492 leaves the tray running without its listener** (verified)