diff --git a/CASA/launcher/NoGTKSharpForm.cs b/CASA/launcher/NoGTKSharpForm.cs
new file mode 100644
index 00000000..c246ef5e
--- /dev/null
+++ b/CASA/launcher/NoGTKSharpForm.cs
@@ -0,0 +1,153 @@
+using System;
+using System.Drawing;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+
+namespace launcher
+{
+ ///
+ /// Summary description for NoGTKSharpForm.
+ ///
+ public class NoGTKSharpForm : System.Windows.Forms.Form
+ {
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.Container components = null;
+
+ public NoGTKSharpForm()
+ {
+ //
+ // Required for Windows Form Designer support
+ //
+ InitializeComponent();
+
+ //
+ // TODO: Add any constructor code after InitializeComponent call
+ //
+ }
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (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.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(NoGTKSharpForm));
+ this.label1 = new System.Windows.Forms.Label();
+ this.button1 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.label2 = new System.Windows.Forms.Label();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
+ this.label1.Location = new System.Drawing.Point(80, 72);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(328, 16);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "The GTK# Library is needed to run CASA Manager.";
+ this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(160, 136);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(64, 24);
+ this.button1.TabIndex = 1;
+ this.button1.Text = "Ok";
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // button2
+ //
+ this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.button2.Location = new System.Drawing.Point(240, 136);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(75, 24);
+ this.button2.TabIndex = 2;
+ this.button2.Text = "Cancel";
+ this.button2.Click += new System.EventHandler(this.button2_Click);
+ //
+ // label2
+ //
+ this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
+ this.label2.Location = new System.Drawing.Point(160, 96);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(160, 16);
+ this.label2.TabIndex = 3;
+ this.label2.Text = "Do you want to install it now?";
+ this.label2.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+ this.pictureBox1.Location = new System.Drawing.Point(0, 0);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(472, 56);
+ this.pictureBox1.TabIndex = 4;
+ this.pictureBox1.TabStop = false;
+ //
+ // NoGTKSharpForm
+ //
+ this.AcceptButton = this.button1;
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.CancelButton = this.button2;
+ this.ClientSize = new System.Drawing.Size(464, 174);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.button2);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.label1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MaximumSize = new System.Drawing.Size(472, 208);
+ this.MinimizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(472, 208);
+ this.Name = "NoGTKSharpForm";
+ this.ShowInTaskbar = false;
+ this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Alert";
+ this.TopMost = true;
+ this.ResumeLayout(false);
+
+ }
+ #endregion
+
+ private void button1_Click(object sender, System.EventArgs e)
+ {
+ Program.ShowUrl("http://forge.novell.com/modules/xfmod/project/?gtks-inst4win");
+ this.Dispose(true);
+ }
+
+ private void button2_Click(object sender, System.EventArgs e)
+ {
+ this.Dispose(true);
+ }
+ }
+}
diff --git a/CASA/launcher/NoGTKSharpForm.resx b/CASA/launcher/NoGTKSharpForm.resx
new file mode 100644
index 00000000..09a5323a
--- /dev/null
+++ b/CASA/launcher/NoGTKSharpForm.resx
@@ -0,0 +1,678 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ False
+
+
+ Private
+
+
+ Private
+
+
+ False
+
+
+ Private
+
+
+ Private
+
+
+ Private
+
+
+ False
+
+
+ Private
+
+
+ False
+
+
+ Private
+
+
+ Private
+
+
+ False
+
+
+ Private
+
+
+ Private
+
+
+
+ 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
+ qQAAAABJRU5ErkJggg==
+
+
+
+ True
+
+
+ (Default)
+
+
+ False
+
+
+ False
+
+
+ 8, 8
+
+
+ True
+
+
+ 80
+
+
+ NoGTKSharpForm
+
+
+ True
+
+
+ Private
+
+
+
+ AAABAAkAMDAQAAEABABoBgAAlgAAACAgEAABAAQA6AIAAP4GAAAQEBAAAQAEACgBAADmCQAAMDAAAAEA
+ CACoDgAADgsAACAgAAABAAgAqAgAALYZAAAQEAAAAQAIAGgFAABeIgAAMDAAAAEAIACoJQAAxicAACAg
+ AAABACAAqBAAAG5NAAAQEAAAAQAgAGgEAAAWXgAAKAAAADAAAABgAAAAAQAEAAAAAAAAAAAAAAAAAAAA
+ AAAQAAAAAAAAAAAAAACAAAAAAIAAAICAAAAAAIAAgACAAACAgACAgIAAwMDAAP8AAAAA/wAA//8AAAAA
+ /wD/AP8AAP//AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAId3eAAAAAAAAAAAAAAAAAAAAAAAAAAA+HeId48AAAAAAAAAAAAAAAAAAAAAAA
+ D4eO6IiHeAAAAAAAAAAAAAAAAHd3d3d3B36IiIiIhwAAAAAAAAAAAAAAAH////+HfoiIiIiIiId///8A
+ AAAAAAAAAH////d+6IiIiIiIiHd3j/8AAAAAAAAAAH//+HjuiIiIiIiIh3B3d48AAAAAAAAAAH/4d+7o
+ iIiIiIiIh3B3fncAAAAAAAAAAHh37uiIiIiIj4iIh3AHeOh4AAAAAAAACHfu7oiIiIiP//+IiHcHd4jn
+ gAAAAAAAh47uiIiIiIj/////iHcHd4iIeAAAAAAAiO7oiIiIiP///////4dwd4iIdwAAAAAIfuiIiIiI
+ j/////////iHeIiIdwAAAAh3iIiIiIiI/////////4iIiIiIdwAAAId4iIiIiIj/////////iIiIjoiI
+ dwAA+HiIiIiIiI//////////iIiHiI7odwAAh4iIeHiIj/////////+IiId3fo53jwAAeIh48HeP////
+ /////4iIiOiIjocPAAAAd3dwAHh4/////////4iIh4joh4hwAAAAAHeAAH/4eP/////4iIeIh4jneP9w
+ AAAAAHd/AH//iI////+IiHd4iOd4//9wAAAAcHcHgH///4eP//iIiIh36Hj///9wAAAAh3gAB3////+H
+ j4iIiIiIeP////9wAAAACAdwAA////hwB4iIiI53j/////9wAAAAAId4cA///4AAAAiIjneP//////9w
+ AAAAAA+Hd3///4AAd3d3d4////////9wAAAAAAAPh3////h3eIj4j/////////9wAAAAAAAAAH////+I
+ j/////////////9wAAAAAAAAAH//////+IiIiIiIiIiIj/9wAAAAAAAAAI/4iIiP////////////j/9w
+ AAAAAAAAAI////////////////////9wAAAAAAAAAI////////////////////9wAAAAAAAAAI//////
+ +IiIiIiIiIiIj/9wAAAAAAAAAI/4iIiP////////////j/9wAAAAAAAAAI////////////////////9w
+ AAAAAAAAAI////////////////////9wAAAAAAAAAIMzMzMzMzMzMzMzMzMzMzNwAAAAAAAAAIiIiIiI
+ iIiId3d3dzMzMzNwAAAAAAAAAIiIiIiIiIiId3d3dzMzMzNwAAAAAAAAAIiIiIiIiIiId3d3dzMzMzNw
+ AAAAAAAAAIiIiIiIh3d3d3d3d3d3d3dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////9fjf//////////////gf////////4Af///////
+ +AA//////8AAAAAf////wAAAAB//wP/AAAAAH//A/8AAAAAf/8D/wAAAAB//wP/AAAAAD//A/4AAAAAH
+ /8D/AAAAAAP/gP8AAAAAA/8A/gAAAAAD/wD4AAAAAAP+APAAAAAAA/gAwAAAAAAD8ADAAAAAAAPAAMBA
+ AAAAD8AAwcAAAAAfwEDBwAAAAB/BwMDAAAAAH8HAwEAAAAAfwMDAAAAAAB/AQOAAAAAAH8AA8AAAAAAf
+ 4AD4AAAAAB/wAP4AAAAAH/gA/8AAAAAf/gD/wAAAAB//wP/AAAAAH//A/8AAAAAf/8D/wAAAAB//wP/A
+ AAAAH//A/8AAAAAf/8D/wAAAAB//wP/AAAAAH//A/8AAAAAf/8D/wAAAAB//wP/AAAAAH//A/8AAAAAf
+ /8D/wAAAAB//wP/////////A//////////////////////////////////////////8oAAAAIAAAAEAA
+ AAABAAQAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAIAAAAAAgAAAgIAAAAAAgACAAIAAAICAAICA
+ gADAwMAA/wAAAAD/AAD//wAAAAD/AP8A/wAA//8A////AAAAAAAAAAAPh4ePAAAAAAAAAAAAAAAPh47u
+ h48AAAAAAAABEREREYiOiO5xERERAAAAB///h3iIjoiI6HeP9wAAAAf/+HiIiIiIiIcXeIcAAAAH+HiI
+ iIiPiIiHB3hxAAAA8XiIiIiIj/+Ihxd454AAAIeIiIiIiP//+OgReO54AAh4iIiIiP/////4h3iOhw+H
+ iIiIiI///////46IiIf3eIiIiI///////4iIjo7neIh4iIj///////iIiIiOeIiIgY////////iIiIiO
+ h4B4fweI///////4iIiIh4cAF3AH+Ij///+IiIiOh4/3ABcYB//4iP/4iIiOh4//9wB3EHf///h4iOiI
+ h4j///cAgXEA//+HAXju6Hj////4AA93d///cRF4iHj/////+AAACIf//4d4j4j///////gAAAAI////
+ j//////////4AAAACP////iIiIiIiIiP+AAAAAj4iIj/////////j/gAAAAI///////////////4AAAA
+ CP////iIiIiIiIiP+AAAAAj4iIj/////////j/gAAAAI///////////////4AAAACDMzMzMzMzMzMzMz
+ OAAAAAiIiIiIiId3d3czMzgAAAAIiIiIiIiHd3d3MzM4AAAACIiIiIiId3d3d3d3eAAAAAAAAAAAAAAA
+ AAAAAAAA//4D///4AP/4AAAD+AAAA/gAAAP4AAAD8AAAAfAAAADgAAAAgAAAAAAAAAAAAAAAAAAAAQgA
+ AAMYAAADCAAAAwAAAAMAAAADgAAAA+AAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gA
+ AAP4AAAD+AAAA/////8oAAAAEAAAACAAAAABAAQAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAIAA
+ AAAAgAAAgIAAAAAAgACAAIAAAICAAICAgADAwMAA/wAAAAD/AAD//wAAAAD/AP8A/wAA//8A////AAAA
+ AAiIiAAAAHd3eI7nd3AAiIj4jud3cAB4iIj/iAeICI+I////iOeHj/////ju53h4///4iOh/d4+I/4jo
+ iHB3f/h4iIj/cPh/93iI//9wAI/4/////3AAj///////cACP//////9wAIiIh3dzM3AAiIiHd3MzcACI
+ iIiId3dw/g///8AB/g/AAcABwADAAYAAwAAAAIAAAAAAAAABAAAAAQABAAEAAcABAAHAAcABwAHAAcAB
+ wAHAAcABwAHAASgAAAAwAAAAYAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAACAgIAqp5WAPLK
+ pgACXlYAVp7WAFbe/gD+vn4AAl5+AP7e1gACPioAgoKCAFb+/gCqfioAVr7WAFZ+fgACPlYAAh4qAMLe
+ wgCq3tYApqKiAPL6/gBWnqoAqr7WAKqefgBWXlYAVl5+AFY+KgCq/v4Aqn5WAFa+/gBWfqoAVj5WAFYe
+ KgD+3qoAqt7+AKq+qgD+/v4Aqp6qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiYmJiYm
+ JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm
+ JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJhYZDhkZ
+ CCYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYICg4EHR0EDhMUJiYmJiYmJiYm
+ JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJBMODQUdDR0dHRUZJSYmJiYmJiYmJiYmJiYmJiYmJiYm
+ JiYmJhgYGBgYGBgYGBgaHxUFIiINDQ0NHR0NHgkgGhoaGhoaGiYmJiYmJiYmJiYmJiYmJhgkJCQkJCQk
+ EQ4VBSIiIiIdDQ0NDQ0dHQ0OCggkJCQkGiYmJiYmJiYmJiYmJiYmJhgkJCQkJAgKDgUFIiIiIiIiDQ0N
+ DQ0NDRUOHhkTFCQkGiYmJiYmJiYmJiYmJiYmJhgkJCQUEw4NBQUiIiIiIiIiHQ0NDQ0NBBkQDx4EGSUU
+ GiYmJiYmJiYmJiYmJiYmJhgkFCMOBAUFBSIiIiIiIiIbIg0NDQ0NBBkQDwMVHR4OICYmJiYmJiYmJiYm
+ JiYmJhgWChUFBQUiIiIiIiIiIiIbFCIiDQ0NBB4JEBkHDR0NByMmJiYmJiYmJiYmJiYmERoeBQsFBSIi
+ IiIiIiIiGxsUFBQUIh0NDR4PEBkDFR0dHQ4RJiYmJiYmJiYmJiYIGQ0FBQUiIiIiIiIiIiIbFBQUFBQk
+ JBQiHQQZJg8DFR0NHQ0ZESYmJiYmJiYmJiYTDQsFBSIiIiIiIiIiIhsUFBQUFCQkFBQUFCIEBw8HBB0N
+ DR0eCiYmJiYmJiYmJiUYBQUiIiIiIiIiIiIbFBQUFBQkJCQUFBQUFBQiHQQEDQ0NDR0EGSYmJiYmJiYR
+ GB8KIiIiIiIiIiIiGxsUFBQUFCQkFBQUFBQUGxsbIiIdDQ0NDR0EGSYmJiYmJiMfChMjEiIiIiIiIiIb
+ FBQUFBQkJCQUFBQUFBQbGxsiDQ0iBQ0NDR0EGSYmJiYkIxgTIxYlEyIbIiIiIhsUFBQUFCQkFBQUFBQU
+ FBsbIg0iDQQdIiIFHQ0OCiYmJiYjGCMjFhMKCg4bGyIiGxQUFBQUJCQUFBQUFBQUGyINDQ0EBAQEHSIF
+ FQ4jFCYmJiYKEyMTCgokJh8KGxQUFBQUFCQkJBQUFBQUFCIiDQ0NDR0iDQ0NBQ0OEBQmJiYmJiYYCgoK
+ GCYmJgojCiMUFBQUJCQUFBQUFBQUFCINDSIiBA0NBRsNDgoIGiYmJiYmJiYaEAofEyYmJgokCBMKESQk
+ JBQUFBQUFBsWIiIEDSINBA0dBRUKFiQkGiYmJiYmJiYaJgoaHxQmJgokJCQIEwoUJBQUFBQUIg0NDQQE
+ BA0iIgUVDiMUJCQkGiYmJiYmJiYYEAofEB8RJgokJCQkJBEKExQUFBsiDRYiIiINBAQFDQ4lFCQkJCQk
+ GiYmJiYmJiYRGB8KEBAQChgkJCQkJCQUEQojGxsNDSIiIh0iIg0OExQkJCQkJCQkGiYmJiYmJiYmCBoZ
+ ChAQEBAkJCQkJCQRChoQGRYiDQ0NDQ0FFQoIJCQkJCQkJCQkHyYmJiYmJiYmJhEfGAofEBAkJCQkJBEQ
+ EBAQJhojIiIiBRUOFiQkJCQkJCQkJCQkHyYmJiYmJiYmJiYUChgKChgkJCQkJAgaIBofGAoKChUVDhMk
+ JCQkJCQkJCQkJCQkHyYmJiYmJiYmJiYmJggTChgkJCQkJBQTGAoKCiUIJBEjFCQkJCQkJCQkJCQkJCQk
+ HyYmJiYmJiYmJiYmJiYmJgokJCQkJCQUIxMRJCQkJCQkJCQkJCQkJCQkJCQkJCQkHyYmJiYmJiYmJiYm
+ JiYmJgokJCQkJCQkJCQkFhYWFhYWFhYWFhYWFhYWFhYWJCQkHyYmJiYmJiYmJiYmJiYmJgokJBMWFhMT
+ FiQkFCQkJCQkJCQkJCQkJCQkJCQWJCQkHyYmJiYmJiYmJiYmJiYmJgokJCQkJCQkJCQkFBQUFBQUFBQU
+ FBQUFBQUFBQUJCQkGCYmJiYmJiYmJiYmJiYmJgokJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk
+ GCYmJiYmJiYmJiYmJiYmJgokJCQkJCQkJCQkFhYWFhYWFhYWFhYWFhYWFhYWJCQkGCYmJiYmJiYmJiYm
+ JiYmJhMkJBMWExMWEyQkFCQkJCQkJCQkJCQkJCQkJCQWJCQkGCYmJiYmJiYmJiYmJiYmJhMkJCQkJCQk
+ JCQkFBQUFBQUFBQUFBQUFBQUFBQUJCQkGCYmJiYmJiYmJiYmJiYmJhMkJCQkJCQkJCQkJCQkJCQkJCQk
+ JCQkJCQkJCQkJCQkGCYmJiYmJiYmJiYmJiYmJhMMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
+ GCYmJiYmJiYmJiYmJiYmJhMhISEhAgICAgICBgYGBgYXFwEBAQEBHBwcHAwMDAwMGCYmJiYmJiYmJiYm
+ JiYmJhMhISEhAgICAgIGBgYGBhcXFwEBAQEcHBwcHAwMDAwMGCYmJiYmJiYmJiYmJiYmJhMhISEhAgIC
+ AgIGBgYGBgYXFwEBAQEBHBwcHAwMDAwMGCYmJiYmJiYmJiYmJiYmJhMTExMTExMTCgoKCgoKCgoKCgoK
+ GBgYGBgYGBgYGBgYGCYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm
+ JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm
+ JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm
+ JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm
+ JiYmJiYmJiYmJiYmJiYmJiYm////////X43//////////////4H////////+AH////////gAP//////A
+ AAAAH////8AAAAAf/8D/wAAAAB//wP/AAAAAH//A/8AAAAAf/8D/wAAAAA//wP+AAAAAB//A/wAAAAAD
+ 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
+ HhETIg8eDw8PDyEWDAQMBQwcDB0kDx4KJSUJGRATJQoeHh4RExYPDw0hDCEWDAQcIRUTCB4eHgolJRgK
+ IyUYGB4eHh4eIgoSDQwcISEhIRUKCB4eHh4eCiUlERgKIxAQHh4eHhYYEBAKEhwcHBUKER4eHh4eHh4K
+ JSUlCAoKGRgeHh4eGBAJCRgKFQwKIg8eHh4eHh4eHgolJSUlJREKGB4eHh4WGAoKJAgIFg8eHh4eHh4e
+ Hh4eCiUlJSUlJSUKDx4eHh4PCB4eHh4eHh4eHh4eHh4eHh4KJSUlJSUlJQoeHh4eHh4eERERERERERER
+ EREREREeHgolJSUlJSUlEx4RIhEiER4ICAgICAgICAgICAgIER4eEyUlJSUlJSUTHh4eHh4eHh4eHh4e
+ Hh4eHh4eHh4eHh4TJSUlJSUlJRMeHh4eHh4eEREREREREREREREREREeHhMlJSUlJSUlEx4RFiIRFh4I
+ CAgICAgICAgICAgIER4eEyUlJSUlJSUTHh4eDx4eHh4eHh4eHh4eHh4eHh4PHh4TJSUlJSUlJRMLCwsL
+ CwsLCwsLCwsLCwsLCwsLCwsLCxMlJSUlJSUlEyAgICAgIAICBgYGBhcBAQEBGxsLCwsLEyUlJSUlJSUT
+ ICAgICAgAgIGBgYGFwEBAQEbGwsLCwsTJSUlJSUlJRMTExMTEwoKCgoKCgoKCgoKChgYGBgYGBMlJSUl
+ JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl//4D///4AP/4AAAD+AAAA/gAAAP4AAAD8AAAAfAA
+ AADgAAAAgAAAAAAAAAAAAAAAAAAAAQgAAAMYAAADCAAAAwAAAAMAAAADgAAAA+AAAAP4AAAD+AAAA/gA
+ AAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/////8oAAAAEAAAACAAAAABAAgAAAAAAAAA
+ AAAAAAAAAAAAAAABAAAAAAAAAh4qAKqeVgBWntYAql4qAFbe/gBWnqoAVn5+AMLewgCmoqIAVj4qAFa+
+ 1gCqfioA8vr+AKq+qgCq/v4AVn6qAAI+VgCqvtYA/r5+AFZeVgCq3v4AgoKCAP7e1gCqnqoAVr7+AKp+
+ VgD+/v4A8sqmAFY+VgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHR0dHR0NBQoIFh0dHR0dHRUVFRMGFAQYGA8TExMdHR0IFggK
+ DhQUGBgPEAUcHR0dBgoUFBQUDAwUAgAFChcdFwoOFBQODAwaDA4CAhgFCBwRDg4MDBoMDA4UGAQEBRwI
+ FRcMGhoMDBQKCgQCEwwcFQgaEREMDhQKGAoIFhMdFRwJDAwIExEECgUHGhoTHQwIExoaFRMICA0aGhoa
+ Ex0dHQgMFhYWFhYWFhYWGhMdHR0IGhoaGhoaGhoaGhoTHR0dCBoWFgwMDAwMDAwaEx0dHQgbGxISEgEB
+ GQsLAxMdHR0IGxsSEhIBARkLCwMTHR0dCAgICAgICAgVFRUVFR3+D1ybwAH+D8ABwAHAAMABgADAAAAA
+ gAAAAAAAAAEAAAABAAEAAQABwAEAAcABwAHAAcABwAHAAcABwAHAAcABKAAAADAAAABgAAAAAQAgAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Eyw2ui9xi/krZXzyDB0jogAAACUAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ0YG347cIDZT6/U/1DD8v9Rwu7/Qp7C/yJR
+ Zc0HEhZsAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIECgtlMFtozWa60P984/7/WMn2/026
+ 5/9Qvur/U8f1/1HA7P87jq/5Gj9NvwABAVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABYV1L/WFdS/1dWUf9XVlH/VlVQ/1VUT/9UU07/U1JN/1JRS/9QUEr/OTk1/yxDSf9Yo7n/e+L1/4ns
+ //+C3/7/VL3n/0q45P9OuuX/Trrl/1C/6/9Tw/H/Trnj/zd8l/8gMDX/Ly4p/zs5M/86ODL/OTcx/zg2
+ Mf84NTD/NzUv/zc1L/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABYV1L//////////////////////////////////v7+/9PT0/9lcnb/VJir/3Xb
+ 8/+C6P//huT//43j//+Q4v3/YMXs/0e34/9PuuX/Trrl/0665f9Ou+b/UL7q/1LD8P9Ltt7/PnqT/3F6
+ ff/i4+T//////////////////////zc1L/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYV1L///////////////////////7+/v/k5OT/fYWI/0uD
+ lP9u0+z/f+n//4Dh//+H4f//juP//5Xm//+g6P//gdX1/0i35P9MueX/Trrl/0665f9OuuX/Trrl/063
+ 4v9Bk7b/MnKN/zV9mv89a37/kZaX/+vs7P///////////zc1L/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYV1L/////////////////6+vr/5uf
+ of9MdYL/Y8Pf/33s//9+4///gt///4rh//+R4///meX//6Dn//+r6///qun9/2fH7P9DteL/Tbnk/0+6
+ 5f9OuuX/T73o/0ekyv8uYXn/EB8o/x9FVv87jKz/QZ3B/0tpdf+tr7D/7+/v/zc1L/8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZWFP///////Ly
+ 8v+tsLH/WXR+/1Wqwv946f//fef//37e//+G4P//juP//5Xj//+c5v//o+j//6vq//+z7P//wvL//67n
+ +v9hw+n/QbTi/0i35P9OuuX/T73p/0WexP8yaoT/Cxcc/x1AT/8lUmX/PpW3/1bN+/84hKP/YHN5/ysq
+ Jf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABaWVX/wcHB/2t9hP9Gkqb/b9///3vs//983///gt7//4ni//+R5P//mOX//5/m//+n6f//ruv//7bt
+ //++7///yPH//9f3///E7vr/gM/u/0y55f9AteP/S7vm/0qq0P85fJr/FzE9/xQrNv8vZH3/J1pu/0y1
+ 3/9Xz///Tbji/ylbbv8DBwlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAACYyPD//SoeX/2bR6/968P//euT//33d//+F4P//jeL//5Tk//+b5v//o+j//6rp
+ //+y6///uu7//8Lw///K8f//0vP//9r2///t/f//8fz//8Lo9v93y+v/Rrfk/0Kz4P8+jK7/JEtd/wkT
+ GP8wZoD/JVJl/0Gavf9RwO3/UsPw/1PH9v8pYHfmAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAIyJJVstcw9X/de3//3no//973v//gd///4fh//+P4///luX//57n
+ //+m6f//rev//7Xs//++7///xfH//83z///V9f//3/f//+b5///w+v/////////////t+f3/q+D0/2XG
+ 6/8/p9P/LGeC/wgOEf8hRVf/JVJl/z2Ttf9Rwe7/Trrk/1HC7/9NuOP/FTI/twABADIAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRYcaFazy/9++f//eN///33d//+E4f//jOL//5Lj
+ //+a5v//oej//6np//+x6///uO3//8Hu///J8f//0vP//9r1///h9///6vr///X8///8/v//+/7///X9
+ ///0/f//7/z//8/x/P+S2/f/TKXJ/yFZc/8cPk7/Jlhs/0es0/9QwOz/Trrl/0675v9TxvT/NX2b8Awa
+ II8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXKDtC2HDQ7P9+6P//gN7//4jh
+ //+P5P//l+b//53n//+l6P//rOv//7Ts//+87v//xPD//8zx///V9f//3vb//+b4///v+///+P7///z/
+ ///4/f//8fz//+n5///i9///3Pb//9v3///S9f//suv9/3nL6/9EnsH/QKXN/0686P9Ou+b/Trrl/066
+ 5f9SwvD/RKLH/yFPYdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBISEq1JRUP1goyQ/4fZ
+ 8f+B5f//iuH//5Lk//+Z5v//oej//6jp//+w6///t+7//7/w///H8v//0PT//9j1///h9///6/r///P8
+ ///7/v//+/7///T9///u+///5vn//9/2///Y9f//0PP//8vy///G8v//wfH//6nn/v+G2vn/Zsrw/0y5
+ 5P9MuOT/Trrl/0665P9Swu//R6rR/yhgducAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQFOLi0t5HNx
+ cf+opKL/wr+//6HX6P+L6P//lOT//5zn//+l6P//rOr//7Pr//+77f//w/D//8zy///U9P//3Pb//+T3
+ ///u+///+P3///z+///5/v//8fv//+v6///k+f//3Pf//9T1///O8v//x/L//8Hw/v+88P//s+v7/2y/
+ 4P9avub/k+P+/37Y9/9XwOn/TLjk/0655P9TxvT/R6fO/yRWat8AAAAAAAAAAAAAAAAAAAAAAAAAAwAA
+ AEZCQUHrmZeW/7y7uv/Ixsf/sayq/4OWnviN2O3/pvP//6bo//+v6///uO3//77u///G8P//z/P//9j1
+ ///g9///6Pn///L7///6/v//+/////b9///u+///5/n//+D4///Z9v//0fP//87z///I8///wPL//5vY
+ 7v92yOf/gNPx/2C52v9Fps7/Z8nv/4/m//+D3/z/Z9H2/1jL9v9QvOj/KmR84gsZIIoAAAAAAAAAAAAA
+ AAAAAAAABQUFRDw7O8yzsrL/wL+//8C/wP+WlZb8Pj08qwAAAHBScHj/t/v9/774//+67v//wu///8rx
+ ///T8///2/b//+T5///t+///9/3///7+///6/v//8vv//+r6///j+f//3Pb//9X1///P9P//z/X//7/w
+ /v+W2vL/fcrl/2zA4f9fs9X/Va7R/1Ks0f9WrM3/RKbO/2nL8f+E7v//euX8/1Kkvf8eRFHBAAMESwAA
+ AAoAAAAAAAAAAAAAAAAAAAAAMzMzsJiYmPewsLD/paSm/3x7fPcSEhJ/AAAAAwAAAABIR0b/b4uT/8Lx
+ 8//Z////0/n//9X0///e9v//6Pn///L8///6/v///f////f+///u+///5/n//+H3///Z9v//0/T//83z
+ ///C7/3/sOj6/3/J5f9csdP/abnZ/0213/97z+3/m+b7/3fL6f9et9r/Wbjd/2nR9P9fu9D/WH+L/ygp
+ Jv8AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0pK5HFwcv9zcnT/iIiK/g4ODp8AAAAAAAAAAAAA
+ AABvbmr/t7e3/3R/gv+hu73/5f////T////t+///9v3///3////7/v//8/z//+v7///l+P//3fb//9f1
+ ///S9P//0Pf//9D5//+z5fT/W7rg/1264P+e3vH/g9Ty/0qv2P9tw+P/bMjn/3ra+P+L9v//bcvp/1KF
+ lP+EjZD/2tra/0E/Of8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx4g6CEgI/93dnj/TU1P/QAA
+ AGcAAAAAAAAAAAAAAABxcG3//////+fn5/+anJ3/foSH/8vT0/////////////f+///v+///6Pn//+L3
+ ///a9v//1PT//9b4///G8f//j8/n/4bU7v+G1PD/T6nO/1K23f+R5f//eMvo/1Kr0P9duNv/Ysfu/27T
+ 8v9NkJ7/dIKH/8bGxv///////////0JAO/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkK1xEQ
+ E/96eXv/Ozo+/wUFB78AAAANAAAAAAAAAAB0c3D/////////////////3t7e/5CRkf+PkI//5+3v////
+ ///p+///3fX//9f0///S9P//zPT//5nc9P9wvdz/fb/a/2a31v9LqM7/Vq7R/02ozf9St+D/gNf1/4Tk
+ +P933fz/VqC5/2R6gP+4urv/9vb2/////////////////0RBPf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAgIClwsKDe53d3r/T05R/xUUF/4ICAi2AQICKAAAAAB3dnL///////////////////////v7
+ +//T09P/foCA/5Wgo//f+fv/4P///87z///J8f//htbz/1Wz2v+MzOP/p+f5/6Lm+P+N1/H/csTh/1So
+ zP9Vr9T/feD//2m+0/9Vdn7/qayt/+3t7f///////////////////////////0VDPv8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAKwEAAatDQ0b/jIuN/yMiJv8aGR3/EBAS4wQEBIpgYFz//v7+////
+ ////////////////////////9vb2/8rLy/9scXL/mre+/8n5/f/C9f//X7XZ/1S54v+g5/z/p+3//5Di
+ /f9wyu3/gNj1/4np+v9yyuL/UXuJ/4+Tlf/r6+v//////////////////////////////////////0ZE
+ P/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMEAwXPbWtu/4OChP8oJiv/Gxof/xoZ
+ HP4XFhn////////////////////////////+/v7/1dXV/3Rzc/8xMTH/FBUX/1lsc/+eztn/ldjs/1y0
+ 1v9VtNn/Xrjb/1a02P9gvt//dtLq/1qUov90fH//3t7e//7+/v//////////////////////////////
+ /////////////0dGQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnBAMFtmFh
+ Y/iNjI3/S0pO/ygnK/8fHiH////////////////////////////U1NX/GBcb/xoZHf8cGx//GBcb/xMO
+ Ev81OD7/k7W//5zd6/+E1/X/gNr4/3vW8P9oq7z/YnV6/8PDw///////////////////////////////
+ /////////////////////////////0lHQv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAACAAAAHM1NTXQfHt8+Ht6fP9gX2L////////////////////////////e3t7/MTA0/y8t
+ Mv81NDj/R0ZJ/19fYf9zcXL/e3Z1/3N9gP9qlaH/b6e1/2J+hv+lpaX/////////////////////////
+ /////////////////////////////////////////////0tJQ/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAaTExMaplZWT/////////////////////////
+ ///19fb/lJSW/2VlZ/91dHX/hISE/4mJif+pqan/29vb///////U1NT/v7+///Ly8v//////////////
+ /////////////////////////////////////////////////////////////0xKRf8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycW7/////////
+ ////////////////////////8fHx/7i4t/+hoqH/0tLS//r6+v//////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////0xM
+ Rv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACJiIX//////////////////////////////////////////////////////8fHxv/Hx8b/x8fG/8fH
+ xv/Hx8b/x8fG/8fHxv/Hx8b/x8fG/8fHxv/Hx8b/x8fG/8fHxv/Hx8b/x8fG/8fHxv/Hx8b/x8fG////
+ /////////////05NSP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACLiof///////////+Uk5H/x8fG/8fHxv+Uk5H/lJOR/8fHxv///////////+vr
+ 6v//////////////////////////////////////////////////////////////////////////////
+ ////////x8fG/////////////////1BOSf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNjIn/////////////////////////////////////////
+ /////////////+vr6v/r6+r/6+vq/+vr6v/r6+r/6+vq/+vr6v/r6+r/6+vq/+vr6v/r6+r/6+vq/+vr
+ 6v/r6+r/6+vq/+vr6v/r6+r/6+vq/////////////////1BQSv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjoz/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////1JRTP8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSkY7/////////
+ /////////////////////////////////////////////8fHxv/Hx8b/x8fG/8fHxv/Hx8b/x8fG/8fH
+ xv/Hx8b/x8fG/8fHxv/Hx8b/x8fG/8fHxv/Hx8b/x8fG/8fHxv/Hx8b/x8fG/////////////////1NS
+ TP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACUk5H///////////+Uk5H/x8fG/5STkf+Uk5H/x8fG/5STkf///////////+vr6v//////////////
+ ////////////////////////////////////////////////////////////////////////x8fG////
+ /////////////1RTTv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACWlZP//////////////////////////////////////////////////////+vr
+ 6v/r6+r/6+vq/+vr6v/r6+r/6+vq/+vr6v/r6+r/6+vq/+vr6v/r6+r/6+vq/+vr6v/r6+r/6+vq/+vr
+ 6v/r6+r/6+vq/////////////////1VUT/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXlpT/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////1ZVUP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmJb/qnc1/6p3Nf+qdzX/qnc1/6p3
+ Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3
+ Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/1dWUf8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACamZf/9dmn//XZ
+ p//12af/89el//HUov/v0p7/7c+b/+vLl//oyJP/5cSP/+LAiv/eu4X/27iA/9i0fP/Vr3b/0apx/86m
+ bP/Komb/x5xh/8SZXP/AlFf/vZBS/7qLTf+3iEn/tYRF/7KBQP+vfz3/rXw6/6t5OP+qdzX/qnc1/1dX
+ Uf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACcm5n/9dmn//XZp//12af/89ek//HUov/v0p7/7s+b/+vMmP/oyJP/5cSO/+HAiv/fvIX/27eA/9iz
+ e//Ur3b/0apw/86ma//KoWb/x51h/8OZXP/AlFf/vY9S/7qMTf+3iEn/tIRF/7KBQf+wfj3/rXs7/6x5
+ N/+qdzX/qnc1/1hXUv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACdnJr/9dmn//XZp//12af/9Nel//LVov/w0Z7/7c+c/+vMl//oyJP/5cSO/+HA
+ iv/fvIX/3LeA/9ize//Vr3b/0apx/86mbP/KoWb/xp1h/8SYW//AlFb/vZBS/7qMTv+3iEj/tIRF/7KB
+ QP+wfj3/rnw6/6t5N/+qdzX/qnc1/1hXUv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdnJr/nZya/5ybmP+amZf/mJiW/5eWlP+Uk5H/kpGP/5CO
+ jP+NjYn/iomH/4iHhP+FhID/goF9/39+e/98e3j/eXh1/3Z1cv9zc2//cW9s/21saP9qaWb/aGdj/2Vk
+ YP9jYl7/YWBc/15dWP9cXFf/W1pV/1lYVP9YV1L/WFdS/1hXUv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
+ /////wAA//////////////+B/////////gB////////4AD//////wAAAAB/////AAAAAH//A/8AAAAAf
+ /8D/wAAAAB//wP/AAAAAH//A/8AAAAAP/8D/gAAAAAf/wP8AAAAAA/+A/wAAAAAD/wD+AAAAAAP/APgA
+ AAAAA/4A8AAAAAAD+ADAAAAAAAPwAMAAAAAAA8AAwEAAAAAPwADBwAAAAB/AQMHAAAAAH8HAwMAAAAAf
+ wcDAQAAAAB/AwMAAAAAAH8BA4AAAAAAfwADwAAAAAB/gAPgAAAAAH/AA/gAAAAAf+AD/wAAAAB/+AP/A
+ AAAAH//A/8AAAAAf/8D/wAAAAB//wP/AAAAAH//A/8AAAAAf/8D/wAAAAB//wP/AAAAAH//A/8AAAAAf
+ /8D/wAAAAB//wP/AAAAAH//A/8AAAAAf/8D/wAAAAB//wP/AAAAAH//A/////////8D/////////////
+ /////////////////////////////ygAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAASEyUqbzJwiOhCoMb/L3GK7A8iK3oAAQIXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAACBg8RUjdnc8RrxNv+XdD8/1HE8/9Uyvj/SK3V/yZdcsoGERReCRQYAwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4NTD/ODUw/zg1MP84NTD/ODUw/zg1
+ MP84NTD/Li4r/ytCSP9fssX/huz//4zq//9Ywev/Sbfj/0+75/9SxPH/U8Ty/0Oewv8nRlH/Kywq/zg1
+ MP84NTD/ODUw/zg1MP84NTD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5dWP/9/f3/////////
+ ////////2NjY/3yNkv9cobL/e+P8/4fq//+N5P//meb//2/M8P9GtuP/T7rl/0665f9Ou+b/U8Px/0mr
+ 0/82b4f/cIaO/9HS0v//////+vr6/15dWP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYWBc//39
+ /f//////6urr/5Ganf9alqX/dN3x/4Xu//+I5P//j+L//5nm//+p6///oOT7/1O95/9DteP/Trrl/1C9
+ 6P9Lr9j/LF51/xs6Sf81fZr/Romj/4iTmP/g4OD/YWBc/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABjYl7/8vLy/6Ooqv9dipj/aM7j/3/t//+D5f//i+L//5Tj//+f5///qer//7Ps///H8///peL3/1W9
+ 5v8+s+L/Srzp/0yt1f8sXXT/DyAo/yVRZP9Bmrz/T7zn/059kP9ERkT/AAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAk1PTf9nho//W7nL/3nt//9/5v//hd7//4/j//+Z5v//ouj//63q//+47v//wvD//87y
+ ///h+v//0fD6/4nR7v9Mu+b/QrPg/zh+nP8TJi//I0te/yxlfP9PvOf/V9D//z6Nrf8JExleAAAAAAAA
+ AAAAAAAAAAAAAAAAAAANHiRtTJ2q/3Tq/P9+7f//geH//4jg//+S5P//nef//6fq//+x7P//ve7//8fy
+ ///R9P//3fb//+r5/////////f7//8fq9/90zvD/QKLN/xQ3Rv8VKjX/KFtv/0is0/9Swu//Vs///zBy
+ jeEBAgJBAAAAAAAAAAAAAAAAAAAAJDdyhNWA+v//fuT//4Tg//+O4///l+X//6Ho//+s6v//tu3//8Hv
+ ///M8v//2PX//+L3///v+///+v3///r+///1/f//8/3//9/4//+j4/r/U6C//yRZcP8vdpL/Trvn/0+8
+ 5/9Rwu//SrHa/xo8SbMAAAAAAAAAAgcGBVUyLi3Lc6u8/4Lr//+H4f//kuT//5zn//+m6P//sOz//7ru
+ ///F8f//0PP//9z2///p+f//9fz///v+///3/f//7fv//+P3///Y9P//1PX//9L3//+28P//etHy/1S+
+ 5/9KuOX/Tbnk/1C96f9PvOj/LnCJ5AAAAAkVFBSTY2Fg+rKppv+30tv/kOr//5Tm//+g5///q+r//7Tr
+ //+/7///yvL//9X1///g9///7vv///r+///7/v//8/v//+n6///e+P//1fX//8/1///E8f7/u/D+/5vc
+ 8/9mwun/h9/9/2vM8P9OueX/UcPw/1LB7v8rZX3jHh4ejJCOjf/JyMj/vrq6/2tsbdt1q7j/s/7//6/s
+ //+57P//xO///8/z///b9v//5vn///P7///8/v//9/7//+77///k+P//2fb//9P1///M9P//tuz6/5XX
+ 7f9twOD/Yrvd/0mnzP9gwOX/ieb//3rn//9ayPD/Lm+J3AkXHWqMjIzsv76+/56dn/84ODiYAAAAKUdM
+ TP+ayc3/0////9H6///T8///4Pf//+37///5/v///P////T8///p+f//3/f//9f1///O8///w/H+/5XW
+ 7v9rvNv/XLjd/3DF5f92yeX/XbTX/1W34P9v2vj/Yq28/0JTV/8BAwMtAAAAAHZ1d/eHhoj/Ly8vrQAA
+ AAMAAAAAeHd0/5yfoP+Lnp//1+/v//r////3////+/////n9///v/P//5Pj//933///Z9///zPT+/8X0
+ /f96yef/Yr3h/5DY8P9VtNv/aMDi/3zb+v+E7P7/Y7bQ/2mIkf+6vLz/eXh1/wAAAAAAAAAANDM192Vl
+ aP8JCAmTAAAAAAAAAAB8e3j//v39/9jY2P+Vl5n/r7Ky//j5+f//////6vn//+D2///Z9v//0vb//6/k
+ 9v+Ex+L/ccXj/1Su0v9TtNr/f9b0/27G5P9pzvL/X7na/2KOl/+mqqv/9fX1//v7+v98e3j/AAAAAAAA
+ AAAsKy3yamls/xUUF+8BAgJhAAAAAH9+e//+/v3////////////Kysr/kpSU/7vCxP/q////2/z//8vz
+ //+I1PD/ccDe/5bX7P+Czuj/ar3d/0+ozf9myO7/geD3/2GYpv+UnJ7/6Ojo////////////+/v6/39+
+ e/8AAAAAAAAAAA0MDrNvbnH/SklN/w4NEfwICQqsXVxZ//r6+v/9/f3////////////7+/v/sbKy/3J9
+ f/+12t//vvb//1a13f93y+r/oOf5/4LW9P+A3Pv/gd30/16dr/+AjZL/39/f////////////////////
+ ///7+/v/goF9/wAAAAAAAAAAAAAAJyIhIsh6eHv/UU9S/x8eI/8bGhz//v7+/////////////////8XF
+ xv9UU1X/FhMW/yMmK/9xj5j/k9bp/2/K7P9qyOz/aMnq/2Cqv/9zi5H/yMnK////////////////////
+ //////////////v7+/+FhID/AAAAAAAAAAAAAAAAAAAAGxgYGZJjY2Psa2pt/1RTVf/8/Pz/////////
+ ////////YmFk/yYlKv8yMTX/Pzw//1lUV/9/ioz/dqOw/3K5zf9ri5P/t7y9//n5+f//////////////
+ ////////////////////////+/v7/4iHhP8AAAAAAAAAAAAAAAAAAAAAAAAAAAMDAzIpKSmEZWVl//7+
+ /v/////////////////Dw8P/YWBj/3V0df+MjIz/rKur/+bm5v/f4OD/wMHB//Dw8P//////////////
+ ///////////////////////////////////7+/v/iomH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACJiYX/9fX1///////////////////////u7u7/2tra////////////////////////////////////
+ //////////////////////////////////////////////v7+/+NjYn/AAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAJCOjP/8/Pz//f39//7+/v/+/v7//v7+//39/f/7+/v/0NDP/9DQz//Q0M//0NDP/9DQ
+ z//Q0M//0NDP/9DQz//Q0M//0NDP/9DQz//Q0M//0NDP/9DQz///////+/v7/5COjP8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAkpGP///////U1NP/sbCv/8/Pzv+xsK//19bW///////o6Oj/5OTj/+jo
+ 6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/l5eX/0NDP///////7+/v/kpGP/wAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUk5H//v7+////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////v7
+ +/+Uk5H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJeWlP/+/v7/////////////////////////
+ ////////0dHQ/9HR0P/R0dD/0dHQ/9HR0P/R0dD/0dHQ/9HR0P/R0dD/0dHQ/9HR0P/R0dD/0dHQ/9HR
+ 0P//////+/v7/5eWlP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJiW///////U1NP/yMjI/7Oy
+ sf/JyMj/xMTC///////p6ej/5eXk/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np
+ 6f/m5ub/0dHQ///////7+/v/mJiW/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACamZf///////7/
+ ///8////+Pz///z////7//////////3////5/f//+v7///r+///6/v//+v7///r+///6/v//+v7///r+
+ ///6/v//+v7///n9///4/P////////////+amZf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyb
+ mP+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3
+ Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/6p3Nf+qdzX/qnc1/5ybmP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAnZya///irv//46///+Gs//zeqP/52qP/9tae//LQl//ty5D/6cSK/+S+gv/ft3z/2rFz/9aq
+ bP/QpGT/zJ5d/8eXVf/DkU7/v4xI/7qHQv+3gjz/tH44/7J7NP+ueTT/nZya/wAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACdnJr//+Ku///jr///4az//N6o//nao//21p7/8tCX/+3LkP/pxIr/5L6C/9+3
+ fP/asXP/1qps/9CkZP/Mnl3/x5dV/8ORTv+/jEj/uodC/7eCPP+0fjj/sns0/655NP+dnJr/AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJybmP+amZf/mJiW/5eWlP+Uk5H/kpGP/5COjP+NjYn/iomH/4iH
+ hP+FhID/goF9/39+e/98e3j/eXh1/3Z1cv9zc2//cW9s/21saP9qaWb/aGdj/2VkYP9jYl7/YWBc/5yb
+ mP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA//4D///4AP/4AAAD+AAAA/gAAAP4AAAD8AAAAfAAAADgAAAAgAAAAAAA
+ AAAAAAAAAAAAAQgAAAMYAAADCAAAAwAAAAMAAAADgAAAA+AAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gA
+ AAP4AAAD+AAAA/gAAAP4AAAD+AAAA/////8oAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMmKU9DjabLRqvS8CJQY5UGEBMhAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAf357/3x7eP95eHX/YGNi/094gP+A2uv/fuD//0i86/9TxvT/P4ik/0FQ
+ Vf9bW1j/Xl1Y/wAAAAAAAAAAAAAAAJ2cmv/d3t//haKp/3DI2f+P8P//oOz//7Dr/f9qxur/Qrvs/zmH
+ qP8jTWD/WZOp/0dOTv8AAAAAAAAAAAAAAABnc3T/a7zJ/4Pt//+U6///pOn//7ru///U9f//6Pn9/6ni
+ +P9MocT/ES49/z6Ss/9Pvun/ESgxYgAAAAAUEhNacsTT/472//+Z5f//rev//8Lw///c9v//8/v///v+
+ ///1/v//yvT//2iqw/9EpMn/U8r7/zyOruM8OzqGS0pN/4y2wP+q9///ufD//8zy///m+f//+f7///P8
+ ///i+v//xvD9/6Tg8/91yev/c9r+/2HQ9v8tbIa9S0pN/0xLS4+AgH7/l6+v/+D6+//9////+f///+37
+ ///Y9v7/rOP1/3rJ5/9mw+j/cNLx/2WtxP9FUlP/AggKDktKTfoLCwx+nZya//////+/wMD/yMjI/+3/
+ //++8f//k9Xs/2/E5P9oyu7/bLvV/4egqP/e39//YWBc/wAAAAArKiyhSkpN/z8+P//s7Oz/9vb2/6Ki
+ ov9cZWf/h8TY/37Z+v91yeT/fKCq/87R0v///////////2FgXP8AAAAAAAAABysrK29fX1//////////
+ //+Af4H/WldY/5OVl/+UqK3/tr2///////////////////////9hYFz/AAAAAAAAAAAAAAAAm5qY//Pz
+ 8//k5OT/4ODg/+Tk5P/m5ub/6Ojo/+jo6P/o6Oj/6Ojo/+bm5f//////YWBc/wAAAAAAAAAAAAAAAJ2c
+ mv///////////////////////////////////////////////////////////2FgXP8AAAAAAAAAAAAA
+ AACdnJr//////+bm5v/m5ub/8vT2/+Xp7v/o7PD/6Ozw/+js8P/o7PH/5enu//////9hYFz/AAAAAAAA
+ AAAAAAAAnZya/+nMmP/vzZX/6MWM/+C7f//XsHP/z6Rm/8aYWP+9jUr/tYI9/655M/+pbiL/YWBc/wAA
+ AAAAAAAAAAAAAJ2cmv/pzJj/782V/+jFjP/gu3//17Bz/8+kZv/GmFj/vY1K/7WCPf+ueTP/qW4i/2Fg
+ XP8AAAAAAAAAAAAAAACdnJr/nZya/5ybmP+amZf/mJiW/5eWlP+Uk5H/kpGP/5COjP+NjYn/iomH/4iH
+ hP+FhID/AAAAAP4PSbvAAQAAwAF8wMAAwAGAAMAAAACAAAAAAAAAAQAAAAEAAQABAAHAAQABwAHAAcAB
+ wAHAAcABwAHAAcABAAQ=
+
+
+
\ No newline at end of file
diff --git a/CASA/launcher/Program.cs b/CASA/launcher/Program.cs
new file mode 100644
index 00000000..29d0436f
--- /dev/null
+++ b/CASA/launcher/Program.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+
+using System.Diagnostics;
+using Microsoft.Win32;
+
+namespace launcher
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+
+ if (IsGTKSharpInstalled())
+ {
+ Process p;
+
+ p = new Process();
+
+ string targetDir = GetPathToCasaManager();
+ if (System.IO.File.Exists(targetDir + string.Format(@"\CASAManager.exe")))
+ {
+ p.StartInfo.WorkingDirectory = targetDir;
+ p.StartInfo.FileName = "CASAManager.exe";
+ p.StartInfo.CreateNoWindow = false;
+ p.Start();
+ }
+ else
+ {
+ System.Diagnostics.Trace.WriteLine("Did not find " + targetDir + "\\CASAManager.exe");
+ }
+ }
+ else
+ {
+ // handled by IsGTKSharpInstalled
+ }
+ }
+
+ private static string GetPathToCasaManager()
+ {
+ string targetDir = Environment.GetEnvironmentVariable("ProgramFiles");
+ targetDir = targetDir + string.Format(@"\Novell\CASA\bin");
+ return targetDir;
+ }
+
+ private static bool IsGTKSharpInstalled()
+ {
+ // check the registry for the existence of GTK
+ string sGTK = ReadRegKey(Registry.LocalMachine, "Software\\GTK\\2.0", "Path");
+ if (sGTK != null)
+ {
+ System.Diagnostics.Trace.WriteLine("GTK Path is: " + sGTK);
+ return true;
+ }
+ else
+ {
+ NoGTKSharpForm form = new NoGTKSharpForm();
+ form.ShowDialog();
+ return false;
+ }
+ }
+
+ private static string ReadRegKey(RegistryKey rk, string sSubKey, string KeyName)
+ {
+ // Opening the registry key
+ // RegistryKey rk = Registry.Users;
+ // Open a subKey as read-only
+ RegistryKey sk1 = rk.OpenSubKey(sSubKey);
+ // If the RegistrySubKey doesn't exist -> (null)
+ if (sk1 == null)
+ {
+ return null;
+ }
+ else
+ {
+ try
+ {
+ // If the RegistryKey exists I get its value
+ // or null is returned.
+ return (string)sk1.GetValue(KeyName.ToUpper());
+ }
+ catch (Exception e)
+ {
+ //ShowErrorMessage(e, "Reading registry " + KeyName.ToUpper());
+ return null;
+ }
+ }
+ }
+
+ internal static bool ShowUrl(string url)
+ {
+
+ Process urlShowProcess = new Process();
+ urlShowProcess.StartInfo.FileName = url;
+
+ try
+ {
+ urlShowProcess.Start();
+ urlShowProcess.WaitForExit();
+ }
+ catch (Exception e)
+ {
+ System.Diagnostics.Trace.WriteLine(e.ToString());
+ return false;
+ }
+
+ if (urlShowProcess.ExitCode == 0)
+ return true;
+ else
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/CASA/launcher/Properties/AssemblyInfo.cs b/CASA/launcher/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..8af81ea8
--- /dev/null
+++ b/CASA/launcher/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("launcher")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Novell, Inc")]
+[assembly: AssemblyProduct("launcher")]
+[assembly: AssemblyCopyright("Copyright © Novell, Inc 2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("65677ede-a9cb-4576-a823-e23e40cc7e52")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CASA/launcher/Properties/Resources.Designer.cs b/CASA/launcher/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..0ab04147
--- /dev/null
+++ b/CASA/launcher/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.42
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace launcher.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("launcher.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/CASA/launcher/Properties/Resources.resx b/CASA/launcher/Properties/Resources.resx
new file mode 100644
index 00000000..ffecec85
--- /dev/null
+++ b/CASA/launcher/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CASA/launcher/Properties/Settings.Designer.cs b/CASA/launcher/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..429ddd4d
--- /dev/null
+++ b/CASA/launcher/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.42
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace launcher.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/CASA/launcher/Properties/Settings.settings b/CASA/launcher/Properties/Settings.settings
new file mode 100644
index 00000000..abf36c5d
--- /dev/null
+++ b/CASA/launcher/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/CASA/launcher/launcher.csproj b/CASA/launcher/launcher.csproj
new file mode 100644
index 00000000..fee0926a
--- /dev/null
+++ b/CASA/launcher/launcher.csproj
@@ -0,0 +1,76 @@
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}
+ WinExe
+ Properties
+ launcher
+ launcher
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+
+
+ NoGTKSharpForm.cs
+ Designer
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
\ No newline at end of file
diff --git a/CASA/package/windows/vs_solutions/CASA-dev-msm/miCASA-Dev-msm.vdproj b/CASA/package/windows/vs_solutions/CASA-dev-msm/miCASA-Dev-msm.vdproj
index 940d8e07..e1fbf071 100644
--- a/CASA/package/windows/vs_solutions/CASA-dev-msm/miCASA-Dev-msm.vdproj
+++ b/CASA/package/windows/vs_solutions/CASA-dev-msm/miCASA-Dev-msm.vdproj
@@ -45,6 +45,12 @@
}
"Entry"
{
+ "MsmKey" = "8:_8D94F14CCA4C41669DA4EAE5E1DA9A5D"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
"MsmKey" = "8:_9630BD80B06842BB9DE27916F038665C"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -228,6 +234,26 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8D94F14CCA4C41669DA4EAE5E1DA9A5D"
+ {
+ "SourcePath" = "8:..\\..\\..\\..\\micasadk\\Release\\micasa.lib"
+ "TargetName" = "8:micasa.lib"
+ "Tag" = "8:"
+ "Folder" = "8:_B38C5202FD154B2EB81B5ED7738CCE94"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9630BD80B06842BB9DE27916F038665C"
{
"SourcePath" = "8:..\\..\\..\\..\\include\\sscs_utf8.h"
@@ -534,34 +560,6 @@
}
"ProjectOutput"
{
- "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0BB61D65C04F493AA015DFB2271EC2A5"
- {
- "SourcePath" = "8:"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_B38C5202FD154B2EB81B5ED7738CCE94"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- "ProjectOutputGroupRegister" = "3:1"
- "OutputConfiguration" = "8:"
- "OutputGroupCanonicalName" = "8:Symbols"
- "OutputProjectGuid" = "8:{99988A22-4C58-4BF7-A2DB-57761E76FB26}"
- "ShowKeyOutput" = "11:TRUE"
- "ExcludeFilters"
- {
- }
- }
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_384A908A3DE54B359C611011C2A2AA97"
{
"SourcePath" = "8:..\\..\\..\\..\\test\\c_sample\\Debug\\cSample.exe"
diff --git a/CASA/package/windows/vs_solutions/CASA-gui-msm/CASA-gui.vdproj b/CASA/package/windows/vs_solutions/CASA-gui-msm/CASA-gui.vdproj
index f643e330..03f65ff2 100644
--- a/CASA/package/windows/vs_solutions/CASA-gui-msm/CASA-gui.vdproj
+++ b/CASA/package/windows/vs_solutions/CASA-gui-msm/CASA-gui.vdproj
@@ -495,6 +495,12 @@
}
"Entry"
{
+ "MsmKey" = "8:_D0DDAE58CB714323B0D13814784CB65D"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
"MsmKey" = "8:_D89B0111B39941A4B477653A6FC2A866"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -574,6 +580,12 @@
"Entry"
{
"MsmKey" = "8:_UNDEFINED"
+ "OwnerKey" = "8:_D0DDAE58CB714323B0D13814784CB65D"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_UNDEFINED"
"OwnerKey" = "8:_C313592161CE221A89C08C1DC26EC9B2"
"MsmSig" = "8:_UNDEFINED"
}
@@ -1108,7 +1120,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Novell.CASA.CASAPol, Version=1.6.2523.23640, Culture=neutral, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Novell.CASA.CASAPol, Version=1.6.2565.17988, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_2FC6C14836C8409F85216C1257E5B966"
@@ -1139,7 +1151,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Novell.CASA.DataEngines, Version=1.6.2524.30501, Culture=neutral, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Novell.CASA.DataEngines, Version=1.6.2565.24038, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_3BE47B443FD85F3330271CF01C0C44D6"
@@ -1341,7 +1353,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:AppModule.NamedPipes, Version=1.6.0.19226, Culture=neutral, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:AppModule.NamedPipes, Version=1.6.0.24037, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_5D2766EAEDC068801AE6ED71837A864F"
@@ -1572,7 +1584,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:AppModule.InterProcessComm, Version=1.6.0.28076, Culture=neutral, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:AppModule.InterProcessComm, Version=1.6.0.17988, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_8677F82D7C53B8ADF0EB026EDCDA075E"
@@ -1996,7 +2008,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Novell.CASA.miCASAWrapper, Version=1.6.2524.30500, Culture=neutral, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Novell.CASA.miCASAWrapper, Version=1.6.2565.24038, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_E3B9C6BE447F59433954ABEF41311465"
@@ -2087,7 +2099,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Novell.CASA.Common, Version=1.6.2524.19227, Culture=neutral, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Novell.CASA.Common, Version=1.6.2565.24037, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_F1B18C2C9D954713B52DF27D1E838BD3"
@@ -2393,6 +2405,34 @@
{
}
}
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D0DDAE58CB714323B0D13814784CB65D"
+ {
+ "SourcePath" = "8:..\\..\\..\\..\\launcher\\obj\\Debug\\launcher.exe"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_F8730948A6CD40509FB6776A183C0BD7"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:1"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:Built"
+ "OutputProjectGuid" = "8:{D267C0E4-584C-4A9A-B189-50CEA39ACA4B}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
}
"Registry"
{
@@ -2429,7 +2469,7 @@
}
"Shortcut"
{
- "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_7537C6B364464EBDBDE620A561D702A9"
+ "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_FF7EC6414E154369B9795588293643B3"
{
"Name" = "8:CASA Manager"
"Arguments" = "8:"
@@ -2437,7 +2477,7 @@
"ShowCmd" = "3:1"
"IconIndex" = "3:0"
"Transitive" = "11:FALSE"
- "Target" = "8:_51EB75B4CAAF4FCD804298CB7E75B11F"
+ "Target" = "8:_D0DDAE58CB714323B0D13814784CB65D"
"Folder" = "8:_2C3FB966F84B412D8A4B853BA2503A62"
"WorkingFolder" = "8:_F8730948A6CD40509FB6776A183C0BD7"
"Icon" = "8:_AEE2937AC2D445BEBC2B9E8DBD7C39DF"
diff --git a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.ncb b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.ncb
index ecd3bc78..7ab939a4 100644
Binary files a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.ncb and b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.ncb differ
diff --git a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.sln b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.sln
index 90af8378..ffb3d2a7 100644
--- a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.sln
+++ b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.sln
@@ -58,7 +58,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jmicasa", "..\..\..\..\jwra
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Novell.Casa.MiCasa", "..\..\..\..\sharp\Novell.Casa.MiCasa\Novell.Casa.MiCasa.csproj", "{7B56383F-6551-4BCD-81BB-A039BBECBD9C}"
EndProject
-Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "CASA", "CASA.vdproj", "{288987CA-24A3-443B-A9D4-018CCF47C9C3}"
+Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "CASA", "CASA.vdproj", "{2D740D52-D112-4001-9A52-48B61DC15CD0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "launcher", "..\..\..\..\launcher\launcher.csproj", "{D267C0E4-584C-4A9A-B189-50CEA39ACA4B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -266,18 +268,28 @@ Global
{7B56383F-6551-4BCD-81BB-A039BBECBD9C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{7B56383F-6551-4BCD-81BB-A039BBECBD9C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{7B56383F-6551-4BCD-81BB-A039BBECBD9C}.Release|Win32.ActiveCfg = Release|Any CPU
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Debug|Any CPU.ActiveCfg = Debug
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Debug|Any CPU.Build.0 = Debug
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Debug|Mixed Platforms.ActiveCfg = Debug
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Debug|Mixed Platforms.Build.0 = Debug
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Debug|Win32.ActiveCfg = Debug
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Debug|Win32.Build.0 = Debug
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Release|Any CPU.ActiveCfg = Release
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Release|Any CPU.Build.0 = Release
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Release|Mixed Platforms.ActiveCfg = Release
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Release|Mixed Platforms.Build.0 = Release
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Release|Win32.ActiveCfg = Release
- {288987CA-24A3-443B-A9D4-018CCF47C9C3}.Release|Win32.Build.0 = Release
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Debug|Any CPU.ActiveCfg = Debug
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Debug|Any CPU.Build.0 = Debug
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Debug|Mixed Platforms.ActiveCfg = Debug
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Debug|Mixed Platforms.Build.0 = Debug
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Debug|Win32.ActiveCfg = Debug
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Debug|Win32.Build.0 = Debug
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Release|Any CPU.ActiveCfg = Release
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Release|Any CPU.Build.0 = Release
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Release|Mixed Platforms.ActiveCfg = Release
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Release|Mixed Platforms.Build.0 = Release
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Release|Win32.ActiveCfg = Release
+ {2D740D52-D112-4001-9A52-48B61DC15CD0}.Release|Win32.Build.0 = Release
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {D267C0E4-584C-4A9A-B189-50CEA39ACA4B}.Release|Win32.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.suo b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.suo
index a54b4459..1db76d81 100644
Binary files a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.suo and b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.suo differ
diff --git a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.vdproj b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.vdproj
index aaddb1a3..72fd2b0c 100644
--- a/CASA/package/windows/vs_solutions/CASA32-msi/CASA.vdproj
+++ b/CASA/package/windows/vs_solutions/CASA32-msi/CASA.vdproj
@@ -333,14 +333,14 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:CASA"
- "ProductCode" = "8:{EA80E3ED-8B3E-41AA-8140-DB41B224A280}"
- "PackageCode" = "8:{841F0620-06FE-48EC-A8D0-271C720A5DB7}"
+ "ProductCode" = "8:{82D754E5-AC82-48BC-B7AF-FAC9DBCBA9BF}"
+ "PackageCode" = "8:{594636EE-8993-482C-9D16-BB68347A5B9E}"
"UpgradeCode" = "8:{DFD8B8A0-EA51-4202-831C-7CD2B90A63AE}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:1.7.956"
+ "ProductVersion" = "8:1.7.1041"
"Manufacturer" = "8:Novell"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
@@ -662,7 +662,7 @@
{
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_168355FD285E4059925B44754162B77B"
{
- "Sequence" = "3:900"
+ "Sequence" = "3:300"
"DisplayName" = "8:Confirm Installation"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
@@ -731,6 +731,262 @@
}
}
}
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D8115ACBCC3147CC8D9FDF572CA41CB0"
+ {
+ "Sequence" = "3:110"
+ "DisplayName" = "8:Checkboxes (A)"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdCustomCheck1Dlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "BannerText"
+ {
+ "Name" = "8:BannerText"
+ "DisplayName" = "8:#1014"
+ "Description" = "8:#1114"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:CASA Components"
+ "DefaultValue" = "8:#1214"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "BodyText"
+ {
+ "Name" = "8:BodyText"
+ "DisplayName" = "8:#1015"
+ "Description" = "8:#1115"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:Select components to install"
+ "DefaultValue" = "8:#1215"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox1Label"
+ {
+ "Name" = "8:Checkbox1Label"
+ "DisplayName" = "8:#1034"
+ "Description" = "8:#1134"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:CASA Manager"
+ "DefaultValue" = "8:#1234"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox1Property"
+ {
+ "Name" = "8:Checkbox1Property"
+ "DisplayName" = "8:#1030"
+ "Description" = "8:#1130"
+ "Type" = "3:14"
+ "ContextData" = "8:Public"
+ "Attributes" = "3:2"
+ "Setting" = "3:2"
+ "Value" = "8:CHECKBOXA1"
+ "DefaultValue" = "8:CHECKBOXA1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox1Value"
+ {
+ "Name" = "8:Checkbox1Value"
+ "DisplayName" = "8:#1038"
+ "Description" = "8:#1138"
+ "Type" = "3:2"
+ "ContextData" = "8:Unchecked=;Checked=1"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:1"
+ "DefaultValue" = "8:"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox1Visible"
+ {
+ "Name" = "8:Checkbox1Visible"
+ "DisplayName" = "8:#1026"
+ "Description" = "8:#1126"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox2Label"
+ {
+ "Name" = "8:Checkbox2Label"
+ "DisplayName" = "8:#1035"
+ "Description" = "8:#1135"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:CASA sdk"
+ "DefaultValue" = "8:#1235"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox2Property"
+ {
+ "Name" = "8:Checkbox2Property"
+ "DisplayName" = "8:#1031"
+ "Description" = "8:#1131"
+ "Type" = "3:14"
+ "ContextData" = "8:Public"
+ "Attributes" = "3:2"
+ "Setting" = "3:2"
+ "Value" = "8:CHECKBOXA2"
+ "DefaultValue" = "8:CHECKBOXA2"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox2Value"
+ {
+ "Name" = "8:Checkbox2Value"
+ "DisplayName" = "8:#1039"
+ "Description" = "8:#1139"
+ "Type" = "3:2"
+ "ContextData" = "8:Unchecked=;Checked=1"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:"
+ "DefaultValue" = "8:"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox2Visible"
+ {
+ "Name" = "8:Checkbox2Visible"
+ "DisplayName" = "8:#1027"
+ "Description" = "8:#1127"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox3Label"
+ {
+ "Name" = "8:Checkbox3Label"
+ "DisplayName" = "8:#1036"
+ "Description" = "8:#1136"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1236"
+ "DefaultValue" = "8:#1236"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox3Property"
+ {
+ "Name" = "8:Checkbox3Property"
+ "DisplayName" = "8:#1032"
+ "Description" = "8:#1132"
+ "Type" = "3:14"
+ "ContextData" = "8:Public"
+ "Attributes" = "3:2"
+ "Setting" = "3:2"
+ "Value" = "8:CHECKBOXA3"
+ "DefaultValue" = "8:CHECKBOXA3"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox3Value"
+ {
+ "Name" = "8:Checkbox3Value"
+ "DisplayName" = "8:#1040"
+ "Description" = "8:#1140"
+ "Type" = "3:2"
+ "ContextData" = "8:Unchecked=;Checked=1"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:"
+ "DefaultValue" = "8:"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox3Visible"
+ {
+ "Name" = "8:Checkbox3Visible"
+ "DisplayName" = "8:#1028"
+ "Description" = "8:#1128"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:0"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox4Label"
+ {
+ "Name" = "8:Checkbox4Label"
+ "DisplayName" = "8:#1037"
+ "Description" = "8:#1137"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1237"
+ "DefaultValue" = "8:#1237"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox4Property"
+ {
+ "Name" = "8:Checkbox4Property"
+ "DisplayName" = "8:#1033"
+ "Description" = "8:#1133"
+ "Type" = "3:14"
+ "ContextData" = "8:Public"
+ "Attributes" = "3:2"
+ "Setting" = "3:2"
+ "Value" = "8:CHECKBOXA4"
+ "DefaultValue" = "8:CHECKBOXA4"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox4Value"
+ {
+ "Name" = "8:Checkbox4Value"
+ "DisplayName" = "8:#1041"
+ "Description" = "8:#1141"
+ "Type" = "3:2"
+ "ContextData" = "8:Unchecked=;Checked=1"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:"
+ "DefaultValue" = "8:"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Checkbox4Visible"
+ {
+ "Name" = "8:Checkbox4Visible"
+ "DisplayName" = "8:#1029"
+ "Description" = "8:#1129"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:0"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DB237FC4DFF5418CA9F31A1501A7B924"
{
"Sequence" = "3:100"
@@ -956,34 +1212,6 @@
"SourcePath" = "8:..\\CASA-dev-msm\\Release\\miCASA-Dev-msm.msm"
"Properties"
{
- "_3ECE494579D255C0D85D58A79F6399A0.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- {
- "Name" = "8:_3ECE494579D255C0D85D58A79F6399A0.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DisplayName" = "8:"
- "Description" = "8:"
- "Type" = "3:2"
- "ContextData" = "8:InstallToGAC=;IsolateToManifest=_6F5143A35711D14A06EDE31F04D74B53.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "Attributes" = "3:0"
- "Setting" = "3:2"
- "Value" = "8:_6F5143A35711D14A06EDE31F04D74B53.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DefaultValue" = "8:_6F5143A35711D14A06EDE31F04D74B53.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "ParentName" = "8:_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "UsePlugInResources" = "11:FALSE"
- }
- "_589CD62C5BC3BA5B93CC46816AA3EF82.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- {
- "Name" = "8:_589CD62C5BC3BA5B93CC46816AA3EF82.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DisplayName" = "8:"
- "Description" = "8:"
- "Type" = "3:2"
- "ContextData" = "8:InstallToGAC=;IsolateToManifest=_65E7F678A98BB9AED57C6D474140DDEC.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "Attributes" = "3:0"
- "Setting" = "3:2"
- "Value" = "8:_65E7F678A98BB9AED57C6D474140DDEC.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DefaultValue" = "8:_65E7F678A98BB9AED57C6D474140DDEC.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "ParentName" = "8:_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "UsePlugInResources" = "11:FALSE"
- }
"_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
{
"Name" = "8:_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
@@ -995,34 +1223,6 @@
"Setting" = "3:1"
"UsePlugInResources" = "11:FALSE"
}
- "_79B391DA0CD738393E315705E2D6813D.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- {
- "Name" = "8:_79B391DA0CD738393E315705E2D6813D.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DisplayName" = "8:"
- "Description" = "8:"
- "Type" = "3:2"
- "ContextData" = "8:InstallToGAC=;IsolateToManifest=_52179197002254A68EACB031EA8E0D62.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "Attributes" = "3:0"
- "Setting" = "3:2"
- "Value" = "8:_52179197002254A68EACB031EA8E0D62.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DefaultValue" = "8:_52179197002254A68EACB031EA8E0D62.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "ParentName" = "8:_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "UsePlugInResources" = "11:FALSE"
- }
- "_BDA7A7A3A0848C544EF87EFA0FBC3D66.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- {
- "Name" = "8:_BDA7A7A3A0848C544EF87EFA0FBC3D66.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DisplayName" = "8:"
- "Description" = "8:"
- "Type" = "3:2"
- "ContextData" = "8:InstallToGAC=;IsolateToManifest=_8C67B5EDEB55DE3F71D20D5669166174.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "Attributes" = "3:0"
- "Setting" = "3:2"
- "Value" = "8:_8C67B5EDEB55DE3F71D20D5669166174.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "DefaultValue" = "8:_8C67B5EDEB55DE3F71D20D5669166174.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "ParentName" = "8:_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
- "UsePlugInResources" = "11:FALSE"
- }
"_C846A5C81BEAA896651F9D385D77259E.4F1ACC03A482468C9BEBF6D83FA4F7FE"
{
"Name" = "8:_C846A5C81BEAA896651F9D385D77259E.4F1ACC03A482468C9BEBF6D83FA4F7FE"
@@ -1037,6 +1237,20 @@
"ParentName" = "8:_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
"UsePlugInResources" = "11:FALSE"
}
+ "_DB60D665178AC5FF0CF5D20D4171D6A0.4F1ACC03A482468C9BEBF6D83FA4F7FE"
+ {
+ "Name" = "8:_DB60D665178AC5FF0CF5D20D4171D6A0.4F1ACC03A482468C9BEBF6D83FA4F7FE"
+ "DisplayName" = "8:"
+ "Description" = "8:"
+ "Type" = "3:2"
+ "ContextData" = "8:InstallToGAC=;IsolateToManifest=_BDB54529AC56667E4616E0CB58F76468.4F1ACC03A482468C9BEBF6D83FA4F7FE"
+ "Attributes" = "3:0"
+ "Setting" = "3:2"
+ "Value" = "8:_BDB54529AC56667E4616E0CB58F76468.4F1ACC03A482468C9BEBF6D83FA4F7FE"
+ "DefaultValue" = "8:_BDB54529AC56667E4616E0CB58F76468.4F1ACC03A482468C9BEBF6D83FA4F7FE"
+ "ParentName" = "8:_6418E7496A474EDDAC9A91150BBE4A26.4F1ACC03A482468C9BEBF6D83FA4F7FE"
+ "UsePlugInResources" = "11:FALSE"
+ }
}
"LanguageId" = "3:1033"
"Exclude" = "11:FALSE"