diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d9aa53..ba89e5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * (Add) Layer status bar: Button with ROI - Click to zoom in region | Click + shift to clear roi * (Add) Setting: Allow the layer overlay tooltips for select issues, ROI, and edit pixel mode to be hidden (#51) +* (Add) Setting: Allow change layer tooltip overlay color and opacity * (Add) Global print properties on formats for more internal abstraction * (Improvement) Print properties performance internal code with abstraction * (Change) Layer status bar: Bounds text to button - Click to zoom in region diff --git a/UVtools.GUI/Controls/TransparentLabel.cs b/UVtools.GUI/Controls/TransparentLabel.cs index 0119179..e7c9da2 100644 --- a/UVtools.GUI/Controls/TransparentLabel.cs +++ b/UVtools.GUI/Controls/TransparentLabel.cs @@ -21,7 +21,7 @@ namespace UVtools.GUI.Controls public TransparentLabel() { transparentBackColor = Color.Blue; - opacity = 50; + _opacity = 50; BackColor = Color.Transparent; DoubleBuffered = true; } @@ -54,14 +54,13 @@ namespace UVtools.GUI.Controls } } - private int opacity; - public int Opacity + private byte _opacity; + public byte Opacity { - get => opacity; + get => _opacity; set { - if (value >= 0 && value <= 255) - opacity = value; + _opacity = value; Invalidate(); } } diff --git a/UVtools.GUI/Forms/FrmSettings.resx b/UVtools.GUI/Forms/FrmSettings.resx index dd1bca6..07b42a9 100644 --- a/UVtools.GUI/Forms/FrmSettings.resx +++ b/UVtools.GUI/Forms/FrmSettings.resx @@ -131,7 +131,7 @@ If false only 4 neighbors (right, left, above, below) will be considered. (Slowe Default number of noise removal iterations the repair algorithm will apply to remove noise and fine details from the layer. This setting has the potential to introduce new islands. Set to 0 to disable. - 47 + 77 diff --git a/UVtools.GUI/FrmMain.Designer.cs b/UVtools.GUI/FrmMain.Designer.cs index 920f59c..b9ca0fa 100644 --- a/UVtools.GUI/FrmMain.Designer.cs +++ b/UVtools.GUI/FrmMain.Designer.cs @@ -61,6 +61,7 @@ namespace UVtools.GUI this.statusBar = new System.Windows.Forms.StatusStrip(); this.mainTable = new System.Windows.Forms.TableLayoutPanel(); this.scCenter = new System.Windows.Forms.SplitContainer(); + this.lbLayerImageTooltipOverlay = new UVtools.GUI.Controls.TransparentLabel(); this.pbLayer = new Cyotek.Windows.Forms.ImageBox(); this.tsLayer = new System.Windows.Forms.ToolStrip(); this.btnLayerImageExport = new System.Windows.Forms.ToolStripSplitButton(); @@ -248,6 +249,7 @@ namespace UVtools.GUI this.panelLayerNavigation = new System.Windows.Forms.Panel(); this.pbTrackerIssues = new System.Windows.Forms.PictureBox(); this.lbActualLayer = new System.Windows.Forms.Label(); + this.tbLayer = new UVtools.GUI.Controls.TrackBarEx(); this.lbInitialLayer = new System.Windows.Forms.Label(); this.panel2 = new System.Windows.Forms.Panel(); this.btnFindLayer = new System.Windows.Forms.Button(); @@ -258,8 +260,6 @@ namespace UVtools.GUI this.toolTipInformation = new System.Windows.Forms.ToolTip(this.components); this.layerScrollTimer = new System.Windows.Forms.Timer(this.components); this.mouseHoldTimer = new System.Windows.Forms.Timer(this.components); - this.lbLayerImageOverlay = new UVtools.GUI.Controls.TransparentLabel(); - this.tbLayer = new UVtools.GUI.Controls.TrackBarEx(); this.menu.SuspendLayout(); this.mainTable.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.scCenter)).BeginInit(); @@ -318,8 +318,8 @@ namespace UVtools.GUI this.tlRight.SuspendLayout(); this.panelLayerNavigation.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbTrackerIssues)).BeginInit(); - this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tbLayer)).BeginInit(); + this.panel2.SuspendLayout(); this.SuspendLayout(); // // menu @@ -596,7 +596,7 @@ namespace UVtools.GUI // // scCenter.Panel1 // - this.scCenter.Panel1.Controls.Add(this.lbLayerImageOverlay); + this.scCenter.Panel1.Controls.Add(this.lbLayerImageTooltipOverlay); this.scCenter.Panel1.Controls.Add(this.pbLayer); this.scCenter.Panel1.Controls.Add(this.tsLayer); // @@ -608,6 +608,23 @@ namespace UVtools.GUI this.scCenter.SplitterDistance = 730; this.scCenter.TabIndex = 4; // + // lbLayerImageOverlay + // + this.lbLayerImageTooltipOverlay.AutoSize = true; + this.lbLayerImageTooltipOverlay.BackColor = System.Drawing.Color.Transparent; + this.lbLayerImageTooltipOverlay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbLayerImageTooltipOverlay.CausesValidation = false; + this.lbLayerImageTooltipOverlay.Location = new System.Drawing.Point(13, 37); + this.lbLayerImageTooltipOverlay.Name = "lbLayerImageTooltipOverlay"; + this.lbLayerImageTooltipOverlay.Opacity = 210; + this.lbLayerImageTooltipOverlay.Padding = new System.Windows.Forms.Padding(10); + this.lbLayerImageTooltipOverlay.Size = new System.Drawing.Size(80, 40); + this.lbLayerImageTooltipOverlay.TabIndex = 8; + this.lbLayerImageTooltipOverlay.Text = "Overlay"; + this.lbLayerImageTooltipOverlay.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbLayerImageTooltipOverlay.TransparentBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.lbLayerImageTooltipOverlay.Visible = false; + // // pbLayer // this.pbLayer.AllowDoubleClick = true; @@ -2753,6 +2770,18 @@ namespace UVtools.GUI this.lbActualLayer.TabIndex = 9; this.lbActualLayer.Text = "?"; // + // tbLayer + // + this.tbLayer.Dock = System.Windows.Forms.DockStyle.Right; + this.tbLayer.Location = new System.Drawing.Point(93, 0); + this.tbLayer.Margin = new System.Windows.Forms.Padding(0); + this.tbLayer.Name = "tbLayer"; + this.tbLayer.Orientation = System.Windows.Forms.Orientation.Vertical; + this.tbLayer.Size = new System.Drawing.Size(45, 557); + this.tbLayer.TabIndex = 8; + this.tbLayer.TickStyle = System.Windows.Forms.TickStyle.TopLeft; + this.tbLayer.ValueChanged += new System.EventHandler(this.ValueChanged); + // // lbInitialLayer // this.lbInitialLayer.Dock = System.Windows.Forms.DockStyle.Fill; @@ -2843,35 +2872,6 @@ namespace UVtools.GUI this.mouseHoldTimer.Interval = 1000; this.mouseHoldTimer.Tick += new System.EventHandler(this.EventTimerTick); // - // lbLayerImageOverlay - // - this.lbLayerImageOverlay.AutoSize = true; - this.lbLayerImageOverlay.BackColor = System.Drawing.Color.Transparent; - this.lbLayerImageOverlay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.lbLayerImageOverlay.CausesValidation = false; - this.lbLayerImageOverlay.Location = new System.Drawing.Point(13, 37); - this.lbLayerImageOverlay.Name = "lbLayerImageOverlay"; - this.lbLayerImageOverlay.Opacity = 210; - this.lbLayerImageOverlay.Padding = new System.Windows.Forms.Padding(10); - this.lbLayerImageOverlay.Size = new System.Drawing.Size(80, 40); - this.lbLayerImageOverlay.TabIndex = 8; - this.lbLayerImageOverlay.Text = "Overlay"; - this.lbLayerImageOverlay.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lbLayerImageOverlay.TransparentBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.lbLayerImageOverlay.Visible = false; - // - // tbLayer - // - this.tbLayer.Dock = System.Windows.Forms.DockStyle.Right; - this.tbLayer.Location = new System.Drawing.Point(93, 0); - this.tbLayer.Margin = new System.Windows.Forms.Padding(0); - this.tbLayer.Name = "tbLayer"; - this.tbLayer.Orientation = System.Windows.Forms.Orientation.Vertical; - this.tbLayer.Size = new System.Drawing.Size(45, 557); - this.tbLayer.TabIndex = 8; - this.tbLayer.TickStyle = System.Windows.Forms.TickStyle.TopLeft; - this.tbLayer.ValueChanged += new System.EventHandler(this.ValueChanged); - // // FrmMain // this.AllowDrop = true; @@ -2978,8 +2978,8 @@ namespace UVtools.GUI this.panelLayerNavigation.ResumeLayout(false); this.panelLayerNavigation.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbTrackerIssues)).EndInit(); - this.panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.tbLayer)).EndInit(); + this.panel2.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -3208,13 +3208,13 @@ namespace UVtools.GUI private System.Windows.Forms.ToolStripSplitButton btnLayerImageActions; private System.Windows.Forms.ToolStripSeparator toolStripSeparator26; private System.Windows.Forms.ToolStripButton btnLogVerbose; - private TransparentLabel lbLayerImageOverlay; public Cyotek.Windows.Forms.ImageBox pbLayer; private System.Windows.Forms.ToolStripSeparator toolStripSeparator27; private System.Windows.Forms.ToolStripButton btnLayerROI; private System.Windows.Forms.ToolStripButton btnLayerBounds; private System.Windows.Forms.ToolStripButton btnLayerMouseLocation; private System.Windows.Forms.ToolStripButton btnLayerResolution; + public TransparentLabel lbLayerImageTooltipOverlay; } } diff --git a/UVtools.GUI/FrmMain.resx b/UVtools.GUI/FrmMain.resx index 97158bb..15543ce 100644 --- a/UVtools.GUI/FrmMain.resx +++ b/UVtools.GUI/FrmMain.resx @@ -173,95 +173,95 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk - FAAAAk1TRnQBSQFMAgEBBgEAAfgBCwH4AQsBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA - AwABIAMAAQEBAAEgBgABIC4AAxgBIgMwAUsDMAFMAzIBUDMAAQEDJAE2AysBQqwAAyIBMQNWAbkDXQHi - AwAB/wMAAf8BKgEtASgB/gNTAawDTQGVAwABARgAAwkBDAMzAVIDUAGdA1cB6AMAAf4DKwH8Ay8BSqQA - AyEBMANZAewBKwEuASkB+gNRAfcDUgH0A1MB8QNIAfYDQQH5AwAB/wNPAZsDAAEBCAADFQEdAz8BbgNV - AboDPgH4A0IB9QNVAbIDPAFnAxQBHANJAYkDTgHwAx0BKpwAAxwBKANZAesBKgEtASgB/gNWAbYDTAGS - A0gBhQNIAYUDRgGAA0gBhQEqAS0BKAH+AwAB/wNOAZQEAAMtAUUDSAH2A10B4gNOAZcDMAFLAwcBCQwA - AwEBAgNVAbIDXAHcAw4BE5gAAyYBOAEqAS0BKAH+A0wBkwNLAZADTQGWA0oBiwNFAX8DQwF4A0MBeANH - AYIDPgH4A1MBsAQAA1oB1QNOAZgYAAMYASIDBAEFAwoBDQNZAdIDVwG/AwQBBZQAA1wB1AMAAf8DUQGg - A04BmANQAZ8DOgFhAzgBXQNCAXQDRgGAA0gBhANMAZMDWAHjAzABTAMAAf4DKwFDCAADBwEKAzABTANN - AZUDWAHdAwAB/wNUAasDAAEBAxcBIANVAeoDTgGZkAADNgFZA0ABcANZAdcDRwGCA0wBkwNJAYkDAQEC - BAADMAFLA0QBeQNIAYcDSwGQA1cB6AMwAUwDXQHiA08BpQNAAXEDVgG5A1EB9wMAAf8DAAH/AwAB/wMA - Af8DAAH/A0oBjAQAAygBPQNBAfkDPwFujAADLQFGAzgBXgNKAY0DEgEYA1ABoxAAAykBPgNLAZADTQGV - A1kB7AMwAUwDSgGKAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wM9AWoEAAM7 - AWMDIQH7Ay0BRogAAxQBHAMwAU0DTwGcA1EBogNTAbAQAAMrAUMDTwGbA1ABngNWAbsDFQEdAwcBCgNY - AcYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DIQH7AzABTAQAA1EBoANYAdGIAANE - AXkDPwFuAyoBQAMeASsDKgFAA1UBsQMEAQUEAAM5AWADTAGSA04BlANWAbYDVgG4CAADDgETA1kB1wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNMAfMDIwEzA0cBggNZAcSEAAM/AW0DLgFI - AxoBJAMlATcDIQEwASsBLAErAUMDLAFEA0gBiANIAYUDSAGHA0kBiQNQAZoDWAHpAycBOgwAAxYBHwNe - AeUDAAH/AwAB/wMAAf8DAAH/AwAB/wMpAfoDWQHHA1IBqAMAAf4DWAHmAzQBVQNMAZOEAAMGAQgDCgEN - A1MBsAMqAUADQgF1AxQBHAM1AVgDRAF8A04BlANEAXwDSAGIA04B8AMnATsUAAMgAS4DTgHwAwAB/wNa - AdMDRwGDAywBRAMIAQsEAAMRARcDWQHEAwAB/wNaAdMDCwEPgAADBwEJA1UBtAMJAQwEAANBAXMDKgFB - A0IBdgM8AWcDUQGnA1oBygNbAdYDJAE2Ax8BLRwAAyoBQAM+AfgDWAHAAx8BLAM4AVwDUAGaA1oB2AMA - Af4DAAH/AwAB/wMAAf8DVQG3hAADAQECA1MBrAMOARMDOwFlBAADMAFNAwcBCQMEAQUwAAM0AVUDKwH8 - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0AB/QNcAdQDSAGHiAADPwFuAwYBCAMxAU8DAwEEA1MBsDwA - Az8BbQMAAf8DAAH/A04B8ANWAbkDRgGAAy4BRwMLAQ+QAAMxAU8DAQECTAADKwFDAx8BLAMBAQKoAAMH + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABi + FAAAAk1TRnQBSQFMAgEBBgIAAQwBAAEMARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMA + ASADAAEBAQABIAYAASAuAAMYASIDMAFLAzABTAMyAVAzAAEBAyQBNgMrAUKsAAMiATEDVgG5A10B4gMA + Af8DAAH/ASoBLQEoAf4DUwGsA00BlQMAAQEYAAMJAQwDMwFSA1ABnQNXAegDAAH+AysB/AMvAUqkAAMh + ATADWQHsASsBLgEpAfoDUQH3A1IB9ANTAfEDSAH2A0EB+QMAAf8DTwGbAwABAQgAAxUBHQM/AW4DVQG6 + Az4B+ANCAfUDVQGyAzwBZwMUARwDSQGJA04B8AMdASqcAAMcASgDWQHrASoBLQEoAf4DVgG2A0wBkgNI + AYUDSAGFA0YBgANIAYUBKgEtASgB/gMAAf8DTgGUBAADLQFFA0gB9gNdAeIDTgGXAzABSwMHAQkMAAMB + AQIDVQGyA1wB3AMOAROYAAMmATgBKgEtASgB/gNMAZMDSwGQA00BlgNKAYsDRQF/A0MBeANDAXgDRwGC + Az4B+ANTAbAEAANaAdUDTgGYGAADGAEiAwQBBQMKAQ0DWQHSA1cBvwMEAQWUAANcAdQDAAH/A1EBoANO + AZgDUAGfAzoBYQM4AV0DQgF0A0YBgANIAYQDTAGTA1gB4wMwAUwDAAH+AysBQwgAAwcBCgMwAUwDTQGV + A1gB3QMAAf8DVAGrAwABAQMXASADVQHqA04BmZAAAzYBWQNAAXADWQHXA0cBggNMAZMDSQGJAwEBAgQA + AzABSwNEAXkDSAGHA0sBkANXAegDMAFMA10B4gNPAaUDQAFxA1YBuQNRAfcDAAH/AwAB/wMAAf8DAAH/ + AwAB/wNKAYwEAAMoAT0DQQH5Az8BbowAAy0BRgM4AV4DSgGNAxIBGANQAaMQAAMpAT4DSwGQA00BlQNZ + AewDMAFMA0oBigMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DPQFqBAADOwFj + AyEB+wMtAUaIAAMUARwDMAFNA08BnANRAaIDUwGwEAADKwFDA08BmwNQAZ4DVgG7AxUBHQMHAQoDWAHG + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AyEB+wMwAUwEAANRAaADWAHRiAADRAF5 + Az8BbgMqAUADHgErAyoBQANVAbEDBAEFBAADOQFgA0wBkgNOAZQDVgG2A1YBuAgAAw4BEwNZAdcDAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DTAHzAyMBMwNHAYIDWQHEhAADPwFtAy4BSAMa + ASQDJQE3AyEBMAErASwBKwFDAywBRANIAYgDSAGFA0gBhwNJAYkDUAGaA1gB6QMnAToMAAMWAR8DXgHl + AwAB/wMAAf8DAAH/AwAB/wMAAf8DKQH6A1kBxwNSAagDAAH+A1gB5gM0AVUDTAGThAADBgEIAwoBDQNT + AbADKgFAA0IBdQMUARwDNQFYA0QBfANOAZQDRAF8A0gBiANOAfADJwE7FAADIAEuA04B8AMAAf8DWgHT + A0cBgwMsAUQDCAELBAADEQEXA1kBxAMAAf8DWgHTAwsBD4AAAwcBCQNVAbQDCQEMBAADQQFzAyoBQQNC + AXYDPAFnA1EBpwNaAcoDWwHWAyQBNgMfAS0cAAMqAUADPgH4A1gBwAMfASwDOAFcA1ABmgNaAdgDAAH+ + AwAB/wMAAf8DAAH/A1UBt4QAAwEBAgNTAawDDgETAzsBZQQAAzABTQMHAQkDBAEFMAADNAFVAysB/AMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNAAf0DXAHUA0gBh4gAAz8BbgMGAQgDMQFPAwMBBANTAbA8AAM/ + AW0DAAH/AwAB/wNOAfADVgG5A0YBgAMuAUcDCwEPkAADMQFPAwEBAkwAAysBQwMfASwDAQECqAADBwEJ + AzcBWgNIAYQDUwGsA1MBrANIAYQDNwFaAwcBCRQAA1ABowNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNS + AakDUgGpA1IBqQNSAakDUgGpA1IBqQNQAaNcAAMVAR0BQgJZAfUBUQJtAfcDQwF3A1sByAJCAVkB9QJY + AV8B4wNKAYwDCgENEAADIAEuA1cBvwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNXAb8DIAEuEAADUgGp + MAADUgGpGAADDQESAzcBWwMdASooAAMFAQcDTAGSAVYCWAHBAxUBHQM9AWkBAAHIAfMB/wEAAZAB5gH/ + AgAB3AH/AgAB3QH/AgAB4wH/AgAB3gH/AgAB3QH/AlgBWwHLAwYBCAgAA0UBfwMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DRQF/DAADUgGpBAADUAGdA1MBqgNTAaoDUwGqA1MBqgNT + AaoDUwGqA1ABnQwAA1IBqRgAA1cBvwMAAf8DRAF7KAABMAIxAU0BAAHJAfMB/wEAAckB9AH/AVkCYAHr + AVsCXgHZAQABwAHxAf8CAAHfAf8CAAHgAf8CAAHgAf8CAAHpAf8CAAHiAf8CAAHgAf8CAAHgAf8DQAFx + BAADLgFHAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Ay4BRwgA + A1IBqQQAA1ABnQNTAaoDUwGqAx8BLBwAA1IBqRgAA0IBdAMAAf8DVgG+KAADBwEKAVkCZwHyAQABygH0 + Af8BAAHKAfQB/wEAAcoB9AH/AQABoQHuAf8CAAHjAf8CAAHjAf8CAAHjAf8CqQHvAf8CAAHjAf8CAAHj + Af8CAAHjAf8CVgFYAbkDCgEOA1oB2AMAAf8DAAH/AwAB/wMAAf8DKgFACAADKgFAAwAB/wMAAf8DAAH/ + AwAB/wNaAdgDCgEOBAADUgGpMAADUgGpEAADNgFZAyYBOAMdASoDAAH/AwAB/wMXASAIAAMmBDgBXAwA + AxUBHQM9AWkDOgFiAVwCYAHUAQABywH1Af8BAAHLAfUB/wEAAcsB9QH/AQABoAHwAf8CAAHmAf8CAAHm + Af8CAAHmAf8CwgH2Af8CAAHoAf8CAAHmAf8CAAHmAf8CVwFZAb8DNQFWAwAB/wMAAf8DAAH/AwAB/wMA + Af8DUwGqCAADRQF/AwAB/wMAAf8DAAH/AwAB/wMAAf8DNQFWBAADUgGpAyIBMgNSAakDUgGpA1IBqQNS + AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDIgEyA1IBqQwAA0EBcwMAAf8DTAHzAxIBGQNaAdsDAAH/ + AzwBZwQAAyoBQANMAfMDAAH/A0IBdAgAAUsCTAGQAQABywH2Af8BAAHLAfYB/wEAAcsB9gH/AQABywH2 + Af8BKQJNAfoDQwF4AyIBMgJLAV8B+wIAAekB/wIAAekB/wLNAfgB/wIAAe0B/wIAAekB/wIAAekB/wNQ + AZ4DRAF7AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0QBewQA + A1IBqQM0AVUDNAFVIAADNAFVAzQBVQNSAakIAANKAYsDAAH/AwAB/wNPAZwEAANNAZUDAAH/A1QBqwgA + A08BnAMAAf8DAAH/A0oBiwQAA1EBoAEAAcwB9wH/AQABzAH3Af8BAAHMAfcB/wEAAcwB9wH/A0MBdwgA + A0oBjQIAAewB/wIAAewB/wIAAe8B/wIAAewB/wIAAewB/wIAAe0B/wFSAlMBqANSAagDAAH/AwAB/wMA + Af8DUQH3A0AB/QNQAZ8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGoBAADUgGpAzQBVQM0AVUDRgGA + A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA0UBfwM0AVUDNAFVA1IBqQQAA1EBogMAAf8DAAH/A0kBiQgA + Ay8BSgMAAf8DVAHuDAADSQGJAwAB/wMAAf8DUQGiAwABAQE/AkABbwE+AlwB+AEAAc0B9wH/AQABzQH3 + Af8DEgEYCAADAQECA0YBfgJSAV0B8AIAAe4B/wIAAe4B/wJAAagB/QFFAkYBfgMDAQQDUgGoAwAB/wMA + Af8DAAH/AwAB/wMAAf8DNAFVCwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1IBqAQAA1IBqQM0AVUDNAFV + Az8BbgMyAVAQAAMnATsDRAF8AzQBVQM0AVUDUgGpBAADUQGiAwAB/wMAAf8DSQGJDAADVAHuAwAB/wMv + AUoIAANJAYkDAAH/AwAB/wNRAaIDAAEBAT8CQAFvAT4CXAH4AQABzgH4Af8BAAHOAfgB/wMSARgQAAMX + ASABAAG8AfcB/wEAAcQB9wH/AUACqAH9AUUCRgF+AwMBBANEAXsDAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DXAHUA1oB1QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNEAXsEAANSAakDNAFVAzQBVQMFAQcDVQG1 + AxEBFwNSAakDKQE+BAADUAGfAxEBFwM0AVUDNAFVA1IBqQgAA0oBiwMAAf8DAAH/A08BnAgAA1QBqwMA + Af8DTQGVBAADTwGcAwAB/wMAAf8DSgGLBAADUQGgAQABzgH4Af8BAAHPAfkB/wEAAc8B+QH/AQABzwH5 + Af8DQwF3EAADRAF6AQABzwH5Af8BAAHPAfkB/wEAAc8B+QH/AQABzgH4Af8BUgJTAagDNQFWAwAB/wMA + Af8DAAH/AwAB/wMAAf8DWgHbCAADWgHbAwAB/wMAAf8DAAH/AwAB/wMAAf8DNQFWBAADUgGpAzQBVQM0 + AVUEAAM8AWgDVgG+AyMBNANVAbUDEgEZA1EBoAQAAzQBVQM0AVUDUgGpDAADQgF0AwAB/wNMAfMDKgFA + BAADPAFnAwAB/wNaAdsDEgEZA0wB8wMAAf8DQQFzCAABSwJMAZABAAHQAfoB/wEAAdAB+gH/AQAB0AH6 + Af8BAAHQAfoB/wEpAk0B+gNDAXgDEgEZAxMBGgNEAXoBKAJfAfsBAAHQAfoB/wEAAdAB+gH/AQAB0AH6 + Af8BAAHQAfoB/wNKAYwDCgEOA1oB2AMAAf8DAAH/AwAB/wMAAf8DWgHbCAADWgHbAwAB/wMAAf8DAAH/ + AwAB/wNaAdgDCgEOBAADUgGpAzQBVQM0AVUDAAEBAy0BRgMKAQ4EAAM5AV8DXAHOAygBPAQAAzQBVQM0 + AVUDUgGpEAADOAFcAyYBOAgAAxcBIAMAAf8DAAH/Ax0BKgMmATgDNgFZDAADFQEdAz0BaQM6AWIBXAJg + AdQBAAHRAfoB/wEAAdEB+gH/AQAB0AH6Af8BAAHLAfMB/wEAAcsB8wH/AQAB0AH6Af8BAAHRAfoB/wEA + AdEB+gH/AV0CYQHiAzoBYgM9AWkDFAEcBAADLgFHAwAB/wMAAf8DAAH/AwAB/wMAAf8DXAHUA1wB1AMA + Af8DAAH/AwAB/wMAAf8DAAH/Ay4BRwgAA1IBqQM0AVUDNAFVAzMBUwNSAaYDSgGMBwABAQNHAYMIAAM0 + AVUDNAFVA1IBqSQAA1YBvgMAAf8DQgF0HAADBwEKAVkCZwHyAQAB0gH7Af8BAAHSAfsB/wEAAdIB+wH/ + AQAB0gH7Af8BAAHSAfsB/wEAAdIB+wH/AQAB0gH7Af8BAAHSAfsB/wErAl8B+wMRARcQAANFAX8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0UBfwwAA1IBqQM0AVUDNAFVAxEBFwNQ + AZ4DJAE2FAADNAFVAzQBVQNSAakkAANEAXsDAAH/A1cBvxwAATACMQFNAQAB0gH8Af8BAAHSAfwB/wFZ + AmAB6wFbAl4B2QEAAdIB/AH/AQAB0gH8Af8BWwJhAeEBXQJhAeIBAAHSAfwB/wEAAdIB/AH/AzgBXhQA + AyABLgNXAb8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DVwG/AyABLhAAA1IBqQMiATIDUgGpA1IBqQNS + AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpAyIBMgNSAakkAAMdASoDNwFbAw0BEhwAAwUBBwNM + AZIBVgJYAcEDFQEdAz0BaQEAAdMB/AH/AQAB0wH8Af8BRQJGAX8DEAEVA1YBswFLAkwBjwMEAQYYAAMH AQkDNwFaA0gBhANTAawDUwGsA0gBhAM3AVoDBwEJFAADUAGjA1IBqQNSAakDUgGpA1IBqQNSAakDUgGp - A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxUBHQFCAlkB9QFRAm0B9wNDAXcDWwHIAkIBWQH1 - AlgBXwHjA0oBjAMKAQ0QAAMgAS4DVwG/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1cBvwMgAS4QAANS - AakwAANSAakYAAMNARIDNwFbAx0BKigAAwUBBwNMAZIBVgJYAcEDFQEdAz0BaQEAAcgB8wH/AQABkAHm - Af8CAAHcAf8CAAHdAf8CAAHjAf8CAAHeAf8CAAHdAf8CWAFbAcsDBgEICAADRQF/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNFAX8MAANSAakEAANQAZ0DUwGqA1MBqgNTAaoDUwGq - A1MBqgNTAaoDUAGdDAADUgGpGAADVwG/AwAB/wNEAXsoAAEwAjEBTQEAAckB8wH/AQAByQH0Af8BWQJg - AesBWwJeAdkBAAHAAfEB/wIAAd8B/wIAAeAB/wIAAeAB/wIAAekB/wIAAeIB/wIAAeAB/wIAAeAB/wNA - AXEEAAMuAUcDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DLgFH - CAADUgGpBAADUAGdA1MBqgNTAaoDHwEsHAADUgGpGAADQgF0AwAB/wNWAb4oAAMHAQoBWQJnAfIBAAHK - AfQB/wEAAcoB9AH/AQABygH0Af8BAAGhAe4B/wIAAeMB/wIAAeMB/wIAAeMB/wKpAe8B/wIAAeMB/wIA - AeMB/wIAAeMB/wJWAVgBuQMKAQ4DWgHYAwAB/wMAAf8DAAH/AwAB/wMqAUAIAAMqAUADAAH/AwAB/wMA - Af8DAAH/A1oB2AMKAQ4EAANSAakwAANSAakQAAM2AVkDJgE4Ax0BKgMAAf8DAAH/AxcBIAgAAyYEOAFc - DAADFQEdAz0BaQM6AWIBXAJgAdQBAAHLAfUB/wEAAcsB9QH/AQABywH1Af8BAAGgAfAB/wIAAeYB/wIA - AeYB/wIAAeYB/wLCAfYB/wIAAegB/wIAAeYB/wIAAeYB/wJXAVkBvwM1AVYDAAH/AwAB/wMAAf8DAAH/ - AwAB/wNTAaoIAANFAX8DAAH/AwAB/wMAAf8DAAH/AwAB/wM1AVYEAANSAakDIgEyA1IBqQNSAakDUgGp - A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQMiATIDUgGpDAADQQFzAwAB/wNMAfMDEgEZA1oB2wMA - Af8DPAFnBAADKgFAA0wB8wMAAf8DQgF0CAABSwJMAZABAAHLAfYB/wEAAcsB9gH/AQABywH2Af8BAAHL - AfYB/wEpAk0B+gNDAXgDIgEyAksBXwH7AgAB6QH/AgAB6QH/As0B+AH/AgAB7QH/AgAB6QH/AgAB6QH/ - A1ABngNEAXsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DRAF7 - BAADUgGpAzQBVQM0AVUgAAM0AVUDNAFVA1IBqQgAA0oBiwMAAf8DAAH/A08BnAQAA00BlQMAAf8DVAGr - CAADTwGcAwAB/wMAAf8DSgGLBAADUQGgAQABzAH3Af8BAAHMAfcB/wEAAcwB9wH/AQABzAH3Af8DQwF3 - CAADSgGNAgAB7AH/AgAB7AH/AgAB7wH/AgAB7AH/AgAB7AH/AgAB7QH/AVICUwGoA1IBqAMAAf8DAAH/ - AwAB/wNRAfcDQAH9A1ABnwsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNSAagEAANSAakDNAFVAzQBVQNG - AYADUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDRQF/AzQBVQM0AVUDUgGpBAADUQGiAwAB/wMAAf8DSQGJ - CAADLwFKAwAB/wNUAe4MAANJAYkDAAH/AwAB/wNRAaIDAAEBAT8CQAFvAT4CXAH4AQABzQH3Af8BAAHN - AfcB/wMSARgIAAMBAQIDRgF+AlIBXQHwAgAB7gH/AgAB7gH/AkABqAH9AUUCRgF+AwMBBANSAagDAAH/ - AwAB/wMAAf8DAAH/AwAB/wM0AVULAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUgGoBAADUgGpAzQBVQM0 - AVUDPwFuAzIBUBAAAycBOwNEAXwDNAFVAzQBVQNSAakEAANRAaIDAAH/AwAB/wNJAYkMAANUAe4DAAH/ - Ay8BSggAA0kBiQMAAf8DAAH/A1EBogMAAQEBPwJAAW8BPgJcAfgBAAHOAfgB/wEAAc4B+AH/AxIBGBAA - AxcBIAEAAbwB9wH/AQABxAH3Af8BQAKoAf0BRQJGAX4DAwEEA0QBewMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wNcAdQDWgHVAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0QBewQAA1IBqQM0AVUDNAFVAwUBBwNV - AbUDEQEXA1IBqQMpAT4EAANQAZ8DEQEXAzQBVQM0AVUDUgGpCAADSgGLAwAB/wMAAf8DTwGcCAADVAGr - AwAB/wNNAZUEAANPAZwDAAH/AwAB/wNKAYsEAANRAaABAAHOAfgB/wEAAc8B+QH/AQABzwH5Af8BAAHP - AfkB/wNDAXcQAANEAXoBAAHPAfkB/wEAAc8B+QH/AQABzwH5Af8BAAHOAfgB/wFSAlMBqAM1AVYDAAH/ - AwAB/wMAAf8DAAH/AwAB/wNaAdsIAANaAdsDAAH/AwAB/wMAAf8DAAH/AwAB/wM1AVYEAANSAakDNAFV - AzQBVQQAAzwBaANWAb4DIwE0A1UBtQMSARkDUQGgBAADNAFVAzQBVQNSAakMAANCAXQDAAH/A0wB8wMq - AUAEAAM8AWcDAAH/A1oB2wMSARkDTAHzAwAB/wNBAXMIAAFLAkwBkAEAAdAB+gH/AQAB0AH6Af8BAAHQ - AfoB/wEAAdAB+gH/ASkCTQH6A0MBeAMSARkDEwEaA0QBegEoAl8B+wEAAdAB+gH/AQAB0AH6Af8BAAHQ - AfoB/wEAAdAB+gH/A0oBjAMKAQ4DWgHYAwAB/wMAAf8DAAH/AwAB/wNaAdsIAANaAdsDAAH/AwAB/wMA - Af8DAAH/A1oB2AMKAQ4EAANSAakDNAFVAzQBVQMAAQEDLQFGAwoBDgQAAzkBXwNcAc4DKAE8BAADNAFV - AzQBVQNSAakQAAM4AVwDJgE4CAADFwEgAwAB/wMAAf8DHQEqAyYBOAM2AVkMAAMVAR0DPQFpAzoBYgFc - AmAB1AEAAdEB+gH/AQAB0QH6Af8BAAHQAfoB/wEAAcsB8wH/AQABywHzAf8BAAHQAfoB/wEAAdEB+gH/ - AQAB0QH6Af8BXQJhAeIDOgFiAz0BaQMUARwEAAMuAUcDAAH/AwAB/wMAAf8DAAH/AwAB/wNcAdQDXAHU - AwAB/wMAAf8DAAH/AwAB/wMAAf8DLgFHCAADUgGpAzQBVQM0AVUDMwFTA1IBpgNKAYwHAAEBA0cBgwgA - AzQBVQM0AVUDUgGpJAADVgG+AwAB/wNCAXQcAAMHAQoBWQJnAfIBAAHSAfsB/wEAAdIB+wH/AQAB0gH7 - Af8BAAHSAfsB/wEAAdIB+wH/AQAB0gH7Af8BAAHSAfsB/wEAAdIB+wH/ASsCXwH7AxEBFxAAA0UBfwMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DRQF/DAADUgGpAzQBVQM0AVUDEQEX - A1ABngMkATYUAAM0AVUDNAFVA1IBqSQAA0QBewMAAf8DVwG/HAABMAIxAU0BAAHSAfwB/wEAAdIB/AH/ - AVkCYAHrAVsCXgHZAQAB0gH8Af8BAAHSAfwB/wFbAmEB4QFdAmEB4gEAAdIB/AH/AQAB0gH8Af8DOAFe - FAADIAEuA1cBvwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNXAb8DIAEuEAADUgGpAyIBMgNSAakDUgGp - A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDIgEyA1IBqSQAAx0BKgM3AVsDDQESHAADBQEH - A0wBkgFWAlgBwQMVAR0DPQFpAQAB0wH8Af8BAAHTAfwB/wFFAkYBfwMQARUDVgGzAUsCTAGPAwQBBhgA - AwcBCQM3AVoDSAGEA1MBrANTAawDSAGEAzcBWgMHAQkUAANQAaMDUgGpA1IBqQNSAakDUgGpA1IBqQNS - AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUAGjXAADFQEdAUICWQH1AVECbQH3AyABLxgAAUIBTQE+ - BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAH+AR8B/gE/BAAB+AEDAfABHwQAAfABAQGA - AQ8EAAHgAQEBAwGHBAAB4AEBAT8BAwQAAeABAAEwAQMEAAHAAUABAAERBAABwQHgAQABCAQAAcEB4AEA - AQQEAAHAAUEBgAUAAYABAQHABQABgAEDAeABIAQAARABBwHwBQABhAF/AfgFAAHBAf8B/AEDBAABzwH/ - Af4BPwQAAfABDwGAAQEC/wH8AQEB4AEHAb8B/QH4Af8BwAEAAcABAwGgAR0B+AH/AcABAAGAAQEBoQH9 - AfgB/wHAAQABAQGAAb8B/QHgAWcCAAEBAoABAQHAAUMCAAEBAYABjwHxAYQBYQEDAQABAQKAAQEBDAFw - AQMBAAEBAYABgwHBAQ4BMAEDAcACAAGAAUEBhgEhAQMBwAEBAYABiAERAcIBAwIAAQEBgAGBAREB5gEH - AgABgAEBAYEBMQH/AR8BwAEDAcABAwGBAfEB/wEfAcABAwHgAQcBgAEBAf8BHwHAAQMB8AEPAYABAQL/ - AfwBPws= + A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxUBHQFCAlkB9QFRAm0B9wMgAS8YAAFCAU0BPgcA + AT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAB/gEfAf4BPwQAAfgBAwHwAR8EAAHwAQEBgAEP + BAAB4AEBAQMBhwQAAeABAQE/AQMEAAHgAQABMAEDBAABwAFAAQABEQQAAcEB4AEAAQgEAAHBAeABAAEE + BAABwAFBAYAFAAGAAQEBwAUAAYABAwHgASAEAAEQAQcB8AUAAYQBfwH4BQABwQH/AfwBAwQAAc8B/wH+ + AT8EAAHwAQ8BgAEBAv8B/AEBAeABBwG/Af0B+AH/AcABAAHAAQMBoAEdAfgB/wHAAQABgAEBAaEB/QH4 + Af8BwAEAAQEBgAG/Af0B4AFnAgABAQKAAQEBwAFDAgABAQGAAY8B8QGEAWEBAwEAAQECgAEBAQwBcAED + AQABAQGAAYMBwQEOATABAwHAAgABgAFBAYYBIQEDAcABAQGAAYgBEQHCAQMCAAEBAYABgQERAeYBBwIA + AYABAQGBATEB/wEfAcABAwHAAQMBgQHxAf8BHwHAAQMB4AEHAYABAQH/AR8BwAEDAfABDwGAAQEC/wH8 + AT8L