From 5af7c37cca2381e8c77ba82e0f5a25362565803b Mon Sep 17 00:00:00 2001 From: Christian Wade Date: Tue, 26 Nov 2019 19:33:00 -0800 Subject: [PATCH] ALMT About box --- BismNormalizer/AlmToolkit/About.Designer.cs | 110 +++++++++ BismNormalizer/AlmToolkit/About.cs | 102 +++++++++ BismNormalizer/AlmToolkit/About.resx | 215 ++++++++++++++++++ BismNormalizer/AlmToolkit/AlmToolkit.csproj | 9 + .../AlmToolkit/ComparisonForm.Designer.cs | 70 +++--- BismNormalizer/AlmToolkit/ComparisonForm.cs | 6 + BismNormalizer/AlmToolkit/ComparisonForm.resx | 76 +++---- ...son and Merging for Analysis Services.docx | Bin 3453445 -> 3453452 bytes 8 files changed, 520 insertions(+), 68 deletions(-) create mode 100644 BismNormalizer/AlmToolkit/About.Designer.cs create mode 100644 BismNormalizer/AlmToolkit/About.cs create mode 100644 BismNormalizer/AlmToolkit/About.resx diff --git a/BismNormalizer/AlmToolkit/About.Designer.cs b/BismNormalizer/AlmToolkit/About.Designer.cs new file mode 100644 index 0000000..244b569 --- /dev/null +++ b/BismNormalizer/AlmToolkit/About.Designer.cs @@ -0,0 +1,110 @@ +namespace AlmToolkit +{ + partial class About + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About)); + this.okButton = new System.Windows.Forms.Button(); + this.logoPictureBox = new System.Windows.Forms.PictureBox(); + this.lblProductVersion = new System.Windows.Forms.Label(); + this.lblProductName = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit(); + this.SuspendLayout(); + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.okButton.Location = new System.Drawing.Point(292, 102); + this.okButton.Margin = new System.Windows.Forms.Padding(4); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(100, 31); + this.okButton.TabIndex = 24; + this.okButton.Text = "&OK"; + // + // logoPictureBox + // + this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image"))); + this.logoPictureBox.Location = new System.Drawing.Point(16, 11); + this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4); + this.logoPictureBox.Name = "logoPictureBox"; + this.logoPictureBox.Size = new System.Drawing.Size(84, 83); + this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.logoPictureBox.TabIndex = 12; + this.logoPictureBox.TabStop = false; + // + // lblProductVersion + // + this.lblProductVersion.AutoSize = true; + this.lblProductVersion.Location = new System.Drawing.Point(117, 44); + this.lblProductVersion.Name = "lblProductVersion"; + this.lblProductVersion.Size = new System.Drawing.Size(45, 16); + this.lblProductVersion.TabIndex = 26; + this.lblProductVersion.Text = "label1"; + // + // lblProductName + // + this.lblProductName.AutoSize = true; + this.lblProductName.Location = new System.Drawing.Point(117, 11); + this.lblProductName.Name = "lblProductName"; + this.lblProductName.Size = new System.Drawing.Size(45, 16); + this.lblProductName.TabIndex = 27; + this.lblProductName.Text = "label1"; + // + // About + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(408, 148); + this.Controls.Add(this.lblProductName); + this.Controls.Add(this.lblProductVersion); + this.Controls.Add(this.logoPictureBox); + this.Controls.Add(this.okButton); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "About"; + this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11); + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About"; + ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.PictureBox logoPictureBox; + private System.Windows.Forms.Label lblProductVersion; + private System.Windows.Forms.Label lblProductName; + } +} diff --git a/BismNormalizer/AlmToolkit/About.cs b/BismNormalizer/AlmToolkit/About.cs new file mode 100644 index 0000000..42966b7 --- /dev/null +++ b/BismNormalizer/AlmToolkit/About.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace AlmToolkit +{ + partial class About : Form + { + public About() + { + InitializeComponent(); + this.Text = "ALM Toolkit"; + this.lblProductName.Text = this.Text; + this.lblProductVersion.Text = String.Format("Version {0}", AssemblyVersion); + } + + #region Assembly Attribute Accessors + + public string AssemblyTitle + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); + if (attributes.Length > 0) + { + AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; + if (titleAttribute.Title != "") + { + return titleAttribute.Title; + } + } + return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); + } + } + + public string AssemblyVersion + { + get + { + return Assembly.GetExecutingAssembly().GetName().Version.ToString() + " (BismNormalizer)"; + } + } + + public string AssemblyDescription + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyDescriptionAttribute)attributes[0]).Description; + } + } + + public string AssemblyProduct + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyProductAttribute)attributes[0]).Product; + } + } + + public string AssemblyCopyright + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + } + + public string AssemblyCompany + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyCompanyAttribute)attributes[0]).Company; + } + } + #endregion + } +} diff --git a/BismNormalizer/AlmToolkit/About.resx b/BismNormalizer/AlmToolkit/About.resx new file mode 100644 index 0000000..6af8ae4 --- /dev/null +++ b/BismNormalizer/AlmToolkit/About.resx @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/BismNormalizer/AlmToolkit/AlmToolkit.csproj b/BismNormalizer/AlmToolkit/AlmToolkit.csproj index f8a14a1..a5bc0b8 100644 --- a/BismNormalizer/AlmToolkit/AlmToolkit.csproj +++ b/BismNormalizer/AlmToolkit/AlmToolkit.csproj @@ -79,6 +79,12 @@ + + Form + + + About.cs + Form @@ -97,6 +103,9 @@ WarningListForm.cs + + About.cs + ComparisonForm.cs diff --git a/BismNormalizer/AlmToolkit/ComparisonForm.Designer.cs b/BismNormalizer/AlmToolkit/ComparisonForm.Designer.cs index 834017f..b72b451 100644 --- a/BismNormalizer/AlmToolkit/ComparisonForm.Designer.cs +++ b/BismNormalizer/AlmToolkit/ComparisonForm.Designer.cs @@ -86,21 +86,22 @@ this.StatusBarComparsion.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripStatusLabel1, this.toolStripProgressBar1}); - this.StatusBarComparsion.Location = new System.Drawing.Point(0, 454); + this.StatusBarComparsion.Location = new System.Drawing.Point(0, 564); this.StatusBarComparsion.Name = "StatusBarComparsion"; - this.StatusBarComparsion.Size = new System.Drawing.Size(825, 22); + this.StatusBarComparsion.Padding = new System.Windows.Forms.Padding(1, 0, 19, 0); + this.StatusBarComparsion.Size = new System.Drawing.Size(1100, 22); this.StatusBarComparsion.TabIndex = 48; this.StatusBarComparsion.Text = "Comparison Status"; // // toolStripStatusLabel1 // this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; - this.toolStripStatusLabel1.Size = new System.Drawing.Size(0, 17); + this.toolStripStatusLabel1.Size = new System.Drawing.Size(0, 12); // // toolStripProgressBar1 // this.toolStripProgressBar1.Name = "toolStripProgressBar1"; - this.toolStripProgressBar1.Size = new System.Drawing.Size(100, 16); + this.toolStripProgressBar1.Size = new System.Drawing.Size(133, 12); this.toolStripProgressBar1.Visible = false; // // tabHome @@ -316,7 +317,8 @@ this.btnHelp.LargeImage = ((System.Drawing.Image)(resources.GetObject("btnHelp.LargeImage"))); this.btnHelp.Name = "btnHelp"; this.btnHelp.SmallImage = ((System.Drawing.Image)(resources.GetObject("btnHelp.SmallImage"))); - this.btnHelp.Text = "Info"; + this.btnHelp.Text = "About"; + this.btnHelp.Click += new System.EventHandler(this.btnHelp_Click); // // pnlRibbon // @@ -325,9 +327,9 @@ this.pnlRibbon.Controls.Add(this.ribbonMain); this.pnlRibbon.Dock = System.Windows.Forms.DockStyle.Top; this.pnlRibbon.Location = new System.Drawing.Point(0, 0); - this.pnlRibbon.Margin = new System.Windows.Forms.Padding(1, 1, 1, 1); + this.pnlRibbon.Margin = new System.Windows.Forms.Padding(1); this.pnlRibbon.Name = "pnlRibbon"; - this.pnlRibbon.Size = new System.Drawing.Size(825, 115); + this.pnlRibbon.Size = new System.Drawing.Size(1100, 142); this.pnlRibbon.TabIndex = 49; // // maqSoftwareLogo @@ -336,10 +338,10 @@ this.maqSoftwareLogo.BackColor = System.Drawing.Color.White; this.maqSoftwareLogo.Cursor = System.Windows.Forms.Cursors.Hand; this.maqSoftwareLogo.Image = ((System.Drawing.Image)(resources.GetObject("maqSoftwareLogo.Image"))); - this.maqSoftwareLogo.Location = new System.Drawing.Point(511, 32); - this.maqSoftwareLogo.Margin = new System.Windows.Forms.Padding(1, 1, 1, 1); + this.maqSoftwareLogo.Location = new System.Drawing.Point(681, 39); + this.maqSoftwareLogo.Margin = new System.Windows.Forms.Padding(1); this.maqSoftwareLogo.Name = "maqSoftwareLogo"; - this.maqSoftwareLogo.Size = new System.Drawing.Size(163, 50); + this.maqSoftwareLogo.Size = new System.Drawing.Size(217, 62); this.maqSoftwareLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.maqSoftwareLogo.TabIndex = 3; this.maqSoftwareLogo.TabStop = false; @@ -349,10 +351,10 @@ // this.powerBiLogo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.powerBiLogo.Image = ((System.Drawing.Image)(resources.GetObject("powerBiLogo.Image"))); - this.powerBiLogo.Location = new System.Drawing.Point(671, 28); - this.powerBiLogo.Margin = new System.Windows.Forms.Padding(1, 1, 1, 1); + this.powerBiLogo.Location = new System.Drawing.Point(895, 34); + this.powerBiLogo.Margin = new System.Windows.Forms.Padding(1); this.powerBiLogo.Name = "powerBiLogo"; - this.powerBiLogo.Size = new System.Drawing.Size(149, 58); + this.powerBiLogo.Size = new System.Drawing.Size(199, 71); this.powerBiLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.powerBiLogo.TabIndex = 2; this.powerBiLogo.TabStop = false; @@ -362,7 +364,7 @@ this.ribbonMain.CaptionBarVisible = false; this.ribbonMain.Font = new System.Drawing.Font("Segoe UI", 9F); this.ribbonMain.Location = new System.Drawing.Point(0, 0); - this.ribbonMain.Margin = new System.Windows.Forms.Padding(1, 1, 1, 1); + this.ribbonMain.Margin = new System.Windows.Forms.Padding(1); this.ribbonMain.Minimized = false; this.ribbonMain.Name = "ribbonMain"; // @@ -380,7 +382,7 @@ this.ribbonMain.OrbStyle = System.Windows.Forms.RibbonOrbStyle.Office_2013; this.ribbonMain.OrbText = "File"; this.ribbonMain.RibbonTabFont = new System.Drawing.Font("Trebuchet MS", 9F); - this.ribbonMain.Size = new System.Drawing.Size(825, 90); + this.ribbonMain.Size = new System.Drawing.Size(1100, 111); this.ribbonMain.TabIndex = 1; this.ribbonMain.Tabs.Add(this.tabHome); this.ribbonMain.Tabs.Add(this.tabHelp); @@ -432,9 +434,10 @@ this.pnlHeader.BackColor = System.Drawing.SystemColors.HighlightText; this.pnlHeader.Controls.Add(this.spltSourceTarget); this.pnlHeader.Dock = System.Windows.Forms.DockStyle.Top; - this.pnlHeader.Location = new System.Drawing.Point(0, 115); + this.pnlHeader.Location = new System.Drawing.Point(0, 142); + this.pnlHeader.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.pnlHeader.Name = "pnlHeader"; - this.pnlHeader.Size = new System.Drawing.Size(825, 33); + this.pnlHeader.Size = new System.Drawing.Size(1100, 41); this.pnlHeader.TabIndex = 50; // // spltSourceTarget @@ -442,6 +445,7 @@ this.spltSourceTarget.Dock = System.Windows.Forms.DockStyle.Fill; this.spltSourceTarget.IsSplitterFixed = true; this.spltSourceTarget.Location = new System.Drawing.Point(0, 0); + this.spltSourceTarget.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.spltSourceTarget.Name = "spltSourceTarget"; // // spltSourceTarget.Panel1 @@ -455,16 +459,18 @@ this.spltSourceTarget.Panel2.Controls.Add(this.txtTarget); this.spltSourceTarget.Panel2.Controls.Add(this.label2); this.spltSourceTarget.Panel2.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.spltSourceTarget.Size = new System.Drawing.Size(825, 33); - this.spltSourceTarget.SplitterDistance = 418; + this.spltSourceTarget.Size = new System.Drawing.Size(1100, 41); + this.spltSourceTarget.SplitterDistance = 557; + this.spltSourceTarget.SplitterWidth = 5; this.spltSourceTarget.TabIndex = 45; // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(2, 8); + this.label1.Location = new System.Drawing.Point(3, 10); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(41, 13); + this.label1.Size = new System.Drawing.Size(51, 16); this.label1.TabIndex = 39; this.label1.Text = "Source"; // @@ -474,9 +480,10 @@ | System.Windows.Forms.AnchorStyles.Right))); this.txtSource.BackColor = System.Drawing.SystemColors.HighlightText; this.txtSource.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtSource.Location = new System.Drawing.Point(49, 6); + this.txtSource.Location = new System.Drawing.Point(65, 7); + this.txtSource.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.txtSource.Name = "txtSource"; - this.txtSource.Size = new System.Drawing.Size(330, 20); + this.txtSource.Size = new System.Drawing.Size(439, 22); this.txtSource.TabIndex = 41; // // txtTarget @@ -485,9 +492,10 @@ | System.Windows.Forms.AnchorStyles.Right))); this.txtTarget.BackColor = System.Drawing.SystemColors.HighlightText; this.txtTarget.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtTarget.Location = new System.Drawing.Point(45, 6); + this.txtTarget.Location = new System.Drawing.Point(60, 7); + this.txtTarget.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.txtTarget.Name = "txtTarget"; - this.txtTarget.Size = new System.Drawing.Size(329, 20); + this.txtTarget.Size = new System.Drawing.Size(439, 22); this.txtTarget.TabIndex = 42; // // label2 @@ -495,23 +503,25 @@ this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(3, 8); + this.label2.Location = new System.Drawing.Point(4, 10); + this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(38, 13); + this.label2.Size = new System.Drawing.Size(48, 16); this.label2.TabIndex = 40; this.label2.Text = "Target"; // // ComparisonForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(825, 476); + this.ClientSize = new System.Drawing.Size(1100, 586); this.Controls.Add(this.pnlHeader); this.Controls.Add(this.StatusBarComparsion); this.Controls.Add(this.pnlRibbon); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.KeyPreview = true; - this.MinimumSize = new System.Drawing.Size(769, 487); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.MinimumSize = new System.Drawing.Size(1017, 583); this.Name = "ComparisonForm"; this.Text = "ALM Toolkit for Power BI"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; diff --git a/BismNormalizer/AlmToolkit/ComparisonForm.cs b/BismNormalizer/AlmToolkit/ComparisonForm.cs index 1cd3c52..4d2d687 100644 --- a/BismNormalizer/AlmToolkit/ComparisonForm.cs +++ b/BismNormalizer/AlmToolkit/ComparisonForm.cs @@ -855,6 +855,12 @@ namespace AlmToolkit } } + private void btnHelp_Click(object sender, EventArgs e) + { + About aboutForm = new About(); + aboutForm.ShowDialog(); + } + private void mnuExit_Click(object sender, EventArgs e) { if (_unsaved && SaveChanges() == DialogResult.Cancel) diff --git a/BismNormalizer/AlmToolkit/ComparisonForm.resx b/BismNormalizer/AlmToolkit/ComparisonForm.resx index a123c87..adec6d4 100644 --- a/BismNormalizer/AlmToolkit/ComparisonForm.resx +++ b/BismNormalizer/AlmToolkit/ComparisonForm.resx @@ -181,44 +181,6 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAh NwAAITcBM1ifegAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAmBJREFUSEvt - l01oE0EUx3P0Ll6868FLRb0J4k1a8CCIF0E8KNGDqAepbWw+JQULhsSCJmjcqBgxLUo3myYtfiRNN9m2 - pmpiZUvTZm0Sk2pBxXOfb9bd0NCdkO7iIeAffvDmzc77zyyzu7OmjpKQEc5leWElOy1MCWnhkJL+t8ql - c7sFfmZDmJ7hkTVkXukyLqfTedDhcJxHzAQmyAzh6jbQEFRSr1NFfirza3OOtF0u10V1nM1mO+N2u3cp - ZVvLbrcfDQQCP0dHRiESichwLAfjY/G2UMcQYlwMfD5fCWvuUMrThTO1kQHr39abWBKXQFwQWyIVpS3j - PB7PDzTer5Sni2asl843Xiwta+Zp6DZO52fhU3FRji89vAkX7tsbfe2g2zj4agQOO0/DldAgdN8yg1Qu - Q7X8FZ4yYWD8jzSZy74zbkzwciE45bsKq5VKI5efz1MpFUuN6zp/c22XzjNeWZWgVqvLsT/xDC4z7kZf - O+g2Hnzhh54hM9ie34EuywnIFHJy/u1kEia4SU3Ehb+PnyHjen0Nzt7tgwMDJyEnFuQceZwS0QkqZGcb - NjbKf2OqWhk/fvMS7JFhzT4auo2HY0+gP3wbwikW9vUeh+RHQc7Lr8f3BU3I5jNsXKlWoQc/DnuudUNi - LiXnSGHmXogKn8wYNyYsf5Fg9vOHply7dPbm0sN2jC3x8bhmET3g8fY7ntO7lPJ04eyOBB8Ef7NjLNCI - stEmuCi3BXLXCF6vt4aH+p1K+dayWq3HcOW9BJzIdQLGfSrY7idgbCFgfEMF2wMEjK0E/JvYq5TdJJPp - D5oiqINNnQHQAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAmBJREFUSEvt - l01oE0EUx3P0Ll6868FLRb0J4k1a8CCIF0E8KNGDqAepbWw+JQULhsSCJmjcqBgxLUo3myYtfiRNN9m2 - pmpiZUvTZm0Sk2pBxXOfb9bd0NCdkO7iIeAffvDmzc77zyyzu7OmjpKQEc5leWElOy1MCWnhkJL+t8ql - c7sFfmZDmJ7hkTVkXukyLqfTedDhcJxHzAQmyAzh6jbQEFRSr1NFfirza3OOtF0u10V1nM1mO+N2u3cp - ZVvLbrcfDQQCP0dHRiESichwLAfjY/G2UMcQYlwMfD5fCWvuUMrThTO1kQHr39abWBKXQFwQWyIVpS3j - PB7PDzTer5Sni2asl843Xiwta+Zp6DZO52fhU3FRji89vAkX7tsbfe2g2zj4agQOO0/DldAgdN8yg1Qu - Q7X8FZ4yYWD8jzSZy74zbkzwciE45bsKq5VKI5efz1MpFUuN6zp/c22XzjNeWZWgVqvLsT/xDC4z7kZf - O+g2Hnzhh54hM9ie34EuywnIFHJy/u1kEia4SU3Ehb+PnyHjen0Nzt7tgwMDJyEnFuQceZwS0QkqZGcb - NjbKf2OqWhk/fvMS7JFhzT4auo2HY0+gP3wbwikW9vUeh+RHQc7Lr8f3BU3I5jNsXKlWoQc/DnuudUNi - LiXnSGHmXogKn8wYNyYsf5Fg9vOHply7dPbm0sN2jC3x8bhmET3g8fY7ntO7lPJ04eyOBB8Ef7NjLNCI - stEmuCi3BXLXCF6vt4aH+p1K+dayWq3HcOW9BJzIdQLGfSrY7idgbCFgfEMF2wMEjK0E/JvYq5TdJJPp - D5oiqINNnQHQAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAh - NwAAITcBM1ifegAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII= @@ -381,6 +343,44 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAh NwAAITcBM1ifegAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAmBJREFUSEvt + l01oE0EUx3P0Ll6868FLRb0J4k1a8CCIF0E8KNGDqAepbWw+JQULhsSCJmjcqBgxLUo3myYtfiRNN9m2 + pmpiZUvTZm0Sk2pBxXOfb9bd0NCdkO7iIeAffvDmzc77zyyzu7OmjpKQEc5leWElOy1MCWnhkJL+t8ql + c7sFfmZDmJ7hkTVkXukyLqfTedDhcJxHzAQmyAzh6jbQEFRSr1NFfirza3OOtF0u10V1nM1mO+N2u3cp + ZVvLbrcfDQQCP0dHRiESichwLAfjY/G2UMcQYlwMfD5fCWvuUMrThTO1kQHr39abWBKXQFwQWyIVpS3j + PB7PDzTer5Sni2asl843Xiwta+Zp6DZO52fhU3FRji89vAkX7tsbfe2g2zj4agQOO0/DldAgdN8yg1Qu + Q7X8FZ4yYWD8jzSZy74zbkzwciE45bsKq5VKI5efz1MpFUuN6zp/c22XzjNeWZWgVqvLsT/xDC4z7kZf + O+g2Hnzhh54hM9ie34EuywnIFHJy/u1kEia4SU3Ehb+PnyHjen0Nzt7tgwMDJyEnFuQceZwS0QkqZGcb + NjbKf2OqWhk/fvMS7JFhzT4auo2HY0+gP3wbwikW9vUeh+RHQc7Lr8f3BU3I5jNsXKlWoQc/DnuudUNi + LiXnSGHmXogKn8wYNyYsf5Fg9vOHply7dPbm0sN2jC3x8bhmET3g8fY7ntO7lPJ04eyOBB8Ef7NjLNCI + stEmuCi3BXLXCF6vt4aH+p1K+dayWq3HcOW9BJzIdQLGfSrY7idgbCFgfEMF2wMEjK0E/JvYq5TdJJPp + D5oiqINNnQHQAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAmBJREFUSEvt + l01oE0EUx3P0Ll6868FLRb0J4k1a8CCIF0E8KNGDqAepbWw+JQULhsSCJmjcqBgxLUo3myYtfiRNN9m2 + pmpiZUvTZm0Sk2pBxXOfb9bd0NCdkO7iIeAffvDmzc77zyyzu7OmjpKQEc5leWElOy1MCWnhkJL+t8ql + c7sFfmZDmJ7hkTVkXukyLqfTedDhcJxHzAQmyAzh6jbQEFRSr1NFfirza3OOtF0u10V1nM1mO+N2u3cp + ZVvLbrcfDQQCP0dHRiESichwLAfjY/G2UMcQYlwMfD5fCWvuUMrThTO1kQHr39abWBKXQFwQWyIVpS3j + PB7PDzTer5Sni2asl843Xiwta+Zp6DZO52fhU3FRji89vAkX7tsbfe2g2zj4agQOO0/DldAgdN8yg1Qu + Q7X8FZ4yYWD8jzSZy74zbkzwciE45bsKq5VKI5efz1MpFUuN6zp/c22XzjNeWZWgVqvLsT/xDC4z7kZf + O+g2Hnzhh54hM9ie34EuywnIFHJy/u1kEia4SU3Ehb+PnyHjen0Nzt7tgwMDJyEnFuQceZwS0QkqZGcb + NjbKf2OqWhk/fvMS7JFhzT4auo2HY0+gP3wbwikW9vUeh+RHQc7Lr8f3BU3I5jNsXKlWoQc/DnuudUNi + LiXnSGHmXogKn8wYNyYsf5Fg9vOHply7dPbm0sN2jC3x8bhmET3g8fY7ntO7lPJ04eyOBB8Ef7NjLNCI + stEmuCi3BXLXCF6vt4aH+p1K+dayWq3HcOW9BJzIdQLGfSrY7idgbCFgfEMF2wMEjK0E/JvYq5TdJJPp + D5oiqINNnQHQAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAh + NwAAITcBM1ifegAAABNJREFUOE9jGAWjYBSMAjBgYAAABBAAAadEfGMAAAAASUVORK5CYII= diff --git a/BismNormalizer/Model Comparison and Merging for Analysis Services.docx b/BismNormalizer/Model Comparison and Merging for Analysis Services.docx index 866c3612eb4c5f189747e001f9af8941c03f3437..154abfcfa1a2cfdd08749d70b0889968f7f09e1f 100644 GIT binary patch delta 52593 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