浏览代码

当NG时,针对惠州工厂弹出密码解锁框。

sat23 3 年之前
父节点
当前提交
a331e7f599
共有 11 个文件被更改,包括 663 次插入133 次删除
  1. 1 0
      .gitignore
  2. 24 4
      Business/CommonMethod.cs
  3. 9 0
      MOKA Factory Tools.csproj
  4. 1 1
      Properties/AssemblyInfo.cs
  5. 3 0
      Views/Login.Designer.cs
  6. 30 0
      Views/Login.cs
  7. 128 128
      Views/Login.resx
  8. 29 0
      Views/OperationPanel.cs
  9. 85 0
      Views/Verify.Designer.cs
  10. 38 0
      Views/Verify.cs
  11. 315 0
      Views/Verify.resx

+ 1 - 0
.gitignore

@@ -5,3 +5,4 @@
 /obj
 /obj
 /bin
 /bin
 /.vs
 /.vs
+*.exe

+ 24 - 4
Business/CommonMethod.cs

@@ -37,6 +37,28 @@ namespace MOKA_Factory_Tools
         private static string lastOrder = "";
         private static string lastOrder = "";
         private static List<string> ListACASSN = new List<string>();
         private static List<string> ListACASSN = new List<string>();
 
 
+        private static LoginInput loginInput = new LoginInput();
+
+        /// <summary>
+        /// 保存登录信息;
+        /// </summary>
+        /// <param name="strAccount"></param>
+        /// <param name="strPssword"></param>
+        public static void SaveLoginInfo(string strAccount, string strPssword)
+        {
+            loginInput.account = strAccount;
+            loginInput.password = strPssword;
+        }
+
+        /// <summary>
+        /// 获取登录账号;
+        /// </summary>
+        /// <returns></returns>
+        public static string GetLoginAccout()
+        {
+            return loginInput.account;
+        }
+
         public static string ReadProfileString(string lpApplicationName, string lpKeyName, string lpDefault)
         public static string ReadProfileString(string lpApplicationName, string lpKeyName, string lpDefault)
         {
         {
             StringBuilder MyString = new StringBuilder(256);
             StringBuilder MyString = new StringBuilder(256);
@@ -2186,13 +2208,14 @@ namespace MOKA_Factory_Tools
             {
             {
                 try
                 try
                 {
                 {
+                    hResult.Html = utf8_gb2312(hResult.Html);
                     using (JsonTextReader reader = new JsonTextReader(new StringReader(hResult.Html)))
                     using (JsonTextReader reader = new JsonTextReader(new StringReader(hResult.Html)))
                     {
                     {
                         JObject jObject = (JObject)JToken.ReadFrom(reader);
                         JObject jObject = (JObject)JToken.ReadFrom(reader);
                         reader.Close();
                         reader.Close();
 
 
                         bool bResult = jObject["Result"].Value<bool>();
                         bool bResult = jObject["Result"].Value<bool>();
-                        msg = utf8_gb2312(jObject["EroMsg"].Value<string>());
+                        msg = jObject["EroMsg"].Value<string>();
 
 
                         if (bResult)
                         if (bResult)
                         {
                         {
@@ -2261,20 +2284,17 @@ namespace MOKA_Factory_Tools
                         }
                         }
 
 
                         Log.WriteInfoLog("ReportDataBurningResultToMES error:" + hResult.StatusDescription + "\r\n" + hResult.Html + "\r\nAddress: " + item.URL + "\r\nPostdata: " + item.Postdata);
                         Log.WriteInfoLog("ReportDataBurningResultToMES error:" + hResult.StatusDescription + "\r\n" + hResult.Html + "\r\nAddress: " + item.URL + "\r\nPostdata: " + item.Postdata);
-                        return false;
                     }
                     }
                 }
                 }
                 catch (Exception)
                 catch (Exception)
                 {
                 {
                     Log.WriteErrorLog("ReportDataBurningResultToMES error:" + hResult.StatusDescription + "\r\n" + hResult.Html + "\r\nAddress: " + item.URL + "\r\nPostdata: " + item.Postdata);
                     Log.WriteErrorLog("ReportDataBurningResultToMES error:" + hResult.StatusDescription + "\r\n" + hResult.Html + "\r\nAddress: " + item.URL + "\r\nPostdata: " + item.Postdata);
-                    return false;
                     throw;
                     throw;
                 }
                 }
             }
             }
             else
             else
             {
             {
                 Log.WriteInfoLog("ReportDataBurningResultToMES error:" + hResult.StatusDescription + "\r\n" + hResult.Html + "\r\nAddress: " + item.URL + "\r\nPostdata: " + item.Postdata);
                 Log.WriteInfoLog("ReportDataBurningResultToMES error:" + hResult.StatusDescription + "\r\n" + hResult.Html + "\r\nAddress: " + item.URL + "\r\nPostdata: " + item.Postdata);
-                return false;
             }
             }
 
 
             return false;
             return false;

+ 9 - 0
MOKA Factory Tools.csproj

@@ -160,6 +160,12 @@
     <Compile Include="Models\StructList.cs" />
     <Compile Include="Models\StructList.cs" />
     <Compile Include="LogHelper\Writelog.cs" />
     <Compile Include="LogHelper\Writelog.cs" />
     <Compile Include="Http\Xmlconfig.cs" />
     <Compile Include="Http\Xmlconfig.cs" />
+    <Compile Include="Views\Verify.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\Verify.Designer.cs">
+      <DependentUpon>Verify.cs</DependentUpon>
+    </Compile>
     <EmbeddedResource Include="Views\CreateDBManually.resx">
     <EmbeddedResource Include="Views\CreateDBManually.resx">
       <DependentUpon>CreateDBManually.cs</DependentUpon>
       <DependentUpon>CreateDBManually.cs</DependentUpon>
     </EmbeddedResource>
     </EmbeddedResource>
@@ -216,6 +222,9 @@
       <DependentUpon>Resources.resx</DependentUpon>
       <DependentUpon>Resources.resx</DependentUpon>
       <DesignTime>True</DesignTime>
       <DesignTime>True</DesignTime>
     </Compile>
     </Compile>
+    <EmbeddedResource Include="Views\Verify.resx">
+      <DependentUpon>Verify.cs</DependentUpon>
+    </EmbeddedResource>
     <None Include="app.config" />
     <None Include="app.config" />
     <None Include="app.manifest" />
     <None Include="app.manifest" />
     <None Include="Config.json" />
     <None Include="Config.json" />

+ 1 - 1
Properties/AssemblyInfo.cs

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
 //通过使用 "*",如下所示:
 //通过使用 "*",如下所示:
 // [assembly: AssemblyVersion("1.0.*")]
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.0.6.7")]
+[assembly: AssemblyVersion("3.0.6.8")]
 [assembly: AssemblyFileVersion("1.0.0.1")]
 [assembly: AssemblyFileVersion("1.0.0.1")]

+ 3 - 0
Views/Login.Designer.cs

@@ -74,11 +74,13 @@
             // 
             // 
             resources.ApplyResources(this.PwdText, "PwdText");
             resources.ApplyResources(this.PwdText, "PwdText");
             this.PwdText.Name = "PwdText";
             this.PwdText.Name = "PwdText";
+            this.PwdText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.PwdText_KeyDown);
             // 
             // 
             // LineText
             // LineText
             // 
             // 
             resources.ApplyResources(this.LineText, "LineText");
             resources.ApplyResources(this.LineText, "LineText");
             this.LineText.Name = "LineText";
             this.LineText.Name = "LineText";
+            this.LineText.KeyDown += new System.Windows.Forms.KeyEventHandler(this.LineText_KeyDown);
             // 
             // 
             // skinLabel3
             // skinLabel3
             // 
             // 
@@ -105,6 +107,7 @@
             this.MinimizeBox = false;
             this.MinimizeBox = false;
             this.Name = "login";
             this.Name = "login";
             this.Load += new System.EventHandler(this.login_Load);
             this.Load += new System.EventHandler(this.login_Load);
+            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.login_KeyDown);
             this.ResumeLayout(false);
             this.ResumeLayout(false);
             this.PerformLayout();
             this.PerformLayout();
 
 

+ 30 - 0
Views/Login.cs

@@ -167,6 +167,9 @@ namespace MOKA_Factory_Tools
             {               
             {               
                 enable = 2;
                 enable = 2;
             }
             }
+
+            // 保存登录信息;
+            CommonMethod.SaveLoginInfo(AccountText.Text, PwdText.Text);
             CommonMethod.FactoryName = loginOutput1.factoryname;
             CommonMethod.FactoryName = loginOutput1.factoryname;
             UpgradeMsgList upgradeMsgList = new UpgradeMsgList();
             UpgradeMsgList upgradeMsgList = new UpgradeMsgList();
             var FactoryNum = loginOutput1.factorynum;
             var FactoryNum = loginOutput1.factorynum;
@@ -279,5 +282,32 @@ namespace MOKA_Factory_Tools
                 Application.Exit();
                 Application.Exit();
             }
             }
         }
         }
+
+        private void login_KeyDown(object sender, KeyEventArgs e)
+        {
+            // 判断是否回车登录;
+            if (e.KeyCode == Keys.Enter)
+            {
+                OnBtnLogin(sender, e);
+            }
+        }
+
+        private void PwdText_KeyDown(object sender, KeyEventArgs e)
+        {
+            // 判断是否回车登录;
+            if (e.KeyCode == Keys.Enter)
+            {
+                OnBtnLogin(sender, e);
+            }
+        }
+
+        private void LineText_KeyDown(object sender, KeyEventArgs e)
+        {
+            // 判断是否回车登录;
+            if (e.KeyCode == Keys.Enter)
+            {
+                OnBtnLogin(sender, e);
+            }
+        }
     }
     }
 }
 }

+ 128 - 128
Views/Login.resx

@@ -117,155 +117,125 @@
   <resheader name="writer">
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   </resheader>
-  <data name="&gt;&gt;LineText.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;PwdText.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;skinLabel3.Type" xml:space="preserve">
+    <value>CCWin.SkinControl.SkinLabel, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
   </data>
   </data>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="skinLabel2.Location" type="System.Drawing.Point, System.Drawing">
   <data name="skinLabel2.Location" type="System.Drawing.Point, System.Drawing">
     <value>19, 135</value>
     <value>19, 135</value>
   </data>
   </data>
-  <data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>64, 123</value>
-  </data>
-  <data name="BtnLogin.Text" xml:space="preserve">
-    <value>Confirm</value>
-  </data>
-  <data name="&gt;&gt;BtnLogin.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="skinLabel1.Font" type="System.Drawing.Font, System.Drawing">
-    <value>微软雅黑, 9pt</value>
+  <data name="&gt;&gt;$this.Type" xml:space="preserve">
+    <value>CCWin.Skin_Color, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
   </data>
   </data>
   <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="LineText.TabIndex" type="System.Int32, mscorlib">
-    <value>5</value>
-  </data>
-  <data name="skinLabel2.Font" type="System.Drawing.Font, System.Drawing">
-    <value>微软雅黑, 9pt</value>
-  </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>2, 2, 2, 2</value>
-  </data>
-  <data name="&gt;&gt;AccountText.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;textBox1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="skinLabel2.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
   </data>
   </data>
-  <data name="skinLabel1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>19, 79</value>
+  <data name="&gt;&gt;PwdText.Name" xml:space="preserve">
+    <value>PwdText</value>
   </data>
   </data>
-  <data name="&gt;&gt;LineText.Name" xml:space="preserve">
-    <value>LineText</value>
+  <data name="&gt;&gt;textBox1.Name" xml:space="preserve">
+    <value>textBox1</value>
   </data>
   </data>
-  <data name="&gt;&gt;PwdText.ZOrder" xml:space="preserve">
-    <value>2</value>
+  <data name="&gt;&gt;BtnLogin.Type" xml:space="preserve">
+    <value>CCWin.SkinControl.SkinButton, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel1.Name" xml:space="preserve">
-    <value>skinLabel1</value>
+  <data name="&gt;&gt;skinLabel3.ZOrder" xml:space="preserve">
+    <value>0</value>
   </data>
   </data>
-  <data name="skinLabel2.TabIndex" type="System.Int32, mscorlib">
-    <value>2</value>
+  <data name="skinLabel2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>78, 20</value>
   </data>
   </data>
-  <data name="&gt;&gt;AccountText.ZOrder" xml:space="preserve">
-    <value>3</value>
+  <data name="skinLabel2.Font" type="System.Drawing.Font, System.Drawing">
+    <value>微软雅黑, 9pt</value>
   </data>
   </data>
   <data name="BtnLogin.TabIndex" type="System.Int32, mscorlib">
   <data name="BtnLogin.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
     <value>0</value>
   </data>
   </data>
-  <data name="&gt;&gt;BtnLogin.Name" xml:space="preserve">
-    <value>BtnLogin</value>
-  </data>
-  <data name="&gt;&gt;textBox1.Name" xml:space="preserve">
-    <value>textBox1</value>
-  </data>
-  <data name="BtnLogin.Size" type="System.Drawing.Size, System.Drawing">
-    <value>110, 42</value>
+  <data name="&gt;&gt;LineText.ZOrder" xml:space="preserve">
+    <value>1</value>
   </data>
   </data>
-  <data name="skinLabel2.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
+  <data name="&gt;&gt;skinLabel2.Name" xml:space="preserve">
+    <value>skinLabel2</value>
   </data>
   </data>
   <data name="skinLabel1.TabIndex" type="System.Int32, mscorlib">
   <data name="skinLabel1.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
     <value>1</value>
   </data>
   </data>
+  <data name="skinLabel1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>70, 20</value>
+  </data>
   <data name="skinLabel1.AutoSize" type="System.Boolean, mscorlib">
   <data name="skinLabel1.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
     <value>True</value>
   </data>
   </data>
-  <data name="&gt;&gt;PwdText.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="skinLabel3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>19, 126</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel2.ZOrder" xml:space="preserve">
-    <value>4</value>
+  <data name="&gt;&gt;LineText.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel2.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="BtnLogin.Size" type="System.Drawing.Size, System.Drawing">
+    <value>110, 42</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel1.Parent" xml:space="preserve">
+  <data name="&gt;&gt;AccountText.Parent" xml:space="preserve">
     <value>$this</value>
     <value>$this</value>
   </data>
   </data>
-  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
-    <value>8, 15</value>
-  </data>
-  <data name="AccountText.Location" type="System.Drawing.Point, System.Drawing">
-    <value>113, 79</value>
-  </data>
-  <data name="AccountText.TabIndex" type="System.Int32, mscorlib">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;skinLabel2.Type" xml:space="preserve">
-    <value>CCWin.SkinControl.SkinLabel, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;skinLabel3.Type" xml:space="preserve">
-    <value>CCWin.SkinControl.SkinLabel, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
+  <data name="skinLabel3.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
   </data>
   </data>
-  <data name="skinLabel2.Size" type="System.Drawing.Size, System.Drawing">
-    <value>78, 20</value>
+  <data name="&gt;&gt;BtnLogin.Name" xml:space="preserve">
+    <value>BtnLogin</value>
   </data>
   </data>
-  <data name="&gt;&gt;textBox1.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="&gt;&gt;LineText.Name" xml:space="preserve">
+    <value>LineText</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel3.ZOrder" xml:space="preserve">
-    <value>0</value>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>2, 2, 2, 2</value>
   </data>
   </data>
   <data name="&gt;&gt;skinLabel3.Parent" xml:space="preserve">
   <data name="&gt;&gt;skinLabel3.Parent" xml:space="preserve">
     <value>$this</value>
     <value>$this</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel1.Type" xml:space="preserve">
-    <value>CCWin.SkinControl.SkinLabel, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BtnLogin.Type" xml:space="preserve">
-    <value>CCWin.SkinControl.SkinButton, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
+  <data name="&gt;&gt;skinLabel3.Name" xml:space="preserve">
+    <value>skinLabel3</value>
   </data>
   </data>
-  <data name="&gt;&gt;$this.Name" xml:space="preserve">
-    <value>login</value>
+  <data name="AccountText.Size" type="System.Drawing.Size, System.Drawing">
+    <value>207, 25</value>
   </data>
   </data>
   <data name="&gt;&gt;skinLabel1.ZOrder" xml:space="preserve">
   <data name="&gt;&gt;skinLabel1.ZOrder" xml:space="preserve">
     <value>5</value>
     <value>5</value>
   </data>
   </data>
-  <data name="&gt;&gt;AccountText.Name" xml:space="preserve">
-    <value>AccountText</value>
+  <data name="&gt;&gt;PwdText.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   </data>
-  <data name="&gt;&gt;PwdText.Name" xml:space="preserve">
-    <value>PwdText</value>
+  <data name="&gt;&gt;skinLabel1.Name" xml:space="preserve">
+    <value>skinLabel1</value>
   </data>
   </data>
-  <data name="&gt;&gt;PwdText.Type" xml:space="preserve">
+  <data name="$this.Text" xml:space="preserve">
+    <value>login</value>
+  </data>
+  <data name="&gt;&gt;textBox1.Type" xml:space="preserve">
     <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   </data>
-  <data name="&gt;&gt;BtnLogin.ZOrder" xml:space="preserve">
-    <value>6</value>
+  <data name="&gt;&gt;skinLabel2.Parent" xml:space="preserve">
+    <value>$this</value>
   </data>
   </data>
-  <data name="skinLabel1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>70, 20</value>
+  <data name="AccountText.Location" type="System.Drawing.Point, System.Drawing">
+    <value>113, 79</value>
   </data>
   </data>
-  <data name="PwdText.TabIndex" type="System.Int32, mscorlib">
-    <value>4</value>
+  <data name="skinLabel1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>19, 79</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel2.Name" xml:space="preserve">
-    <value>skinLabel2</value>
+  <data name="&gt;&gt;LineText.Parent" xml:space="preserve">
+    <value>$this</value>
   </data>
   </data>
-  <data name="skinLabel3.TabIndex" type="System.Int32, mscorlib">
-    <value>6</value>
+  <data name="&gt;&gt;AccountText.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="LineText.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
   </data>
   </data>
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
     <value>
@@ -461,59 +431,89 @@
         AAD///////8AAP///////wAA////////AAD///////8AAA==
         AAD///////8AAP///////wAA////////AAD///////8AAA==
 </value>
 </value>
   </data>
   </data>
-  <data name="textBox1.TabIndex" type="System.Int32, mscorlib">
-    <value>5</value>
+  <data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>64, 123</value>
   </data>
   </data>
-  <data name="PwdText.Size" type="System.Drawing.Size, System.Drawing">
-    <value>207, 25</value>
+  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
+    <value>364, 243</value>
   </data>
   </data>
-  <data name="skinLabel1.Text" xml:space="preserve">
-    <value>Account</value>
+  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
+    <value>8, 15</value>
   </data>
   </data>
-  <data name="&gt;&gt;skinLabel3.Name" xml:space="preserve">
-    <value>skinLabel3</value>
+  <data name="&gt;&gt;$this.Name" xml:space="preserve">
+    <value>login</value>
   </data>
   </data>
   <data name="LineText.Location" type="System.Drawing.Point, System.Drawing">
   <data name="LineText.Location" type="System.Drawing.Point, System.Drawing">
     <value>64, 122</value>
     <value>64, 122</value>
   </data>
   </data>
-  <data name="$this.Text" xml:space="preserve">
-    <value>login</value>
+  <data name="PwdText.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
+    <value>*</value>
   </data>
   </data>
-  <data name="&gt;&gt;LineText.ZOrder" xml:space="preserve">
-    <value>1</value>
+  <data name="&gt;&gt;skinLabel1.Type" xml:space="preserve">
+    <value>CCWin.SkinControl.SkinLabel, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BtnLogin.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name="skinLabel1.Font" type="System.Drawing.Font, System.Drawing">
+    <value>微软雅黑, 9pt</value>
+  </data>
+  <data name="AccountText.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
   </data>
   </data>
   <data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve">
   <data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve">
     <value>1</value>
     <value>1</value>
   </data>
   </data>
-  <data name="skinLabel3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>19, 126</value>
+  <data name="&gt;&gt;skinLabel2.Type" xml:space="preserve">
+    <value>CCWin.SkinControl.SkinLabel, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
   </data>
   </data>
-  <data name="BtnLogin.Location" type="System.Drawing.Point, System.Drawing">
-    <value>149, 174</value>
+  <data name="&gt;&gt;skinLabel2.ZOrder" xml:space="preserve">
+    <value>4</value>
   </data>
   </data>
-  <data name="AccountText.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="PwdText.Size" type="System.Drawing.Size, System.Drawing">
     <value>207, 25</value>
     <value>207, 25</value>
   </data>
   </data>
-  <data name="PwdText.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
-    <value>*</value>
+  <data name="&gt;&gt;skinLabel1.Parent" xml:space="preserve">
+    <value>$this</value>
   </data>
   </data>
-  <data name="&gt;&gt;AccountText.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="skinLabel2.Text" xml:space="preserve">
+    <value>Password
+</value>
+  </data>
+  <data name="skinLabel1.Text" xml:space="preserve">
+    <value>Account</value>
+  </data>
+  <data name="skinLabel2.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="&gt;&gt;textBox1.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;AccountText.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="BtnLogin.Text" xml:space="preserve">
+    <value>Confirm</value>
+  </data>
+  <data name="BtnLogin.Location" type="System.Drawing.Point, System.Drawing">
+    <value>149, 174</value>
+  </data>
+  <data name="&gt;&gt;PwdText.ZOrder" xml:space="preserve">
+    <value>2</value>
   </data>
   </data>
   <data name="PwdText.Location" type="System.Drawing.Point, System.Drawing">
   <data name="PwdText.Location" type="System.Drawing.Point, System.Drawing">
     <value>113, 130</value>
     <value>113, 130</value>
   </data>
   </data>
-  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>364, 243</value>
+  <data name="PwdText.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
   </data>
   </data>
-  <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>CCWin.Skin_Color, CSkin, Version=16.1.14.3, Culture=neutral, PublicKeyToken=null</value>
+  <data name="&gt;&gt;AccountText.Name" xml:space="preserve">
+    <value>AccountText</value>
   </data>
   </data>
-  <data name="skinLabel2.Text" xml:space="preserve">
-    <value>Password
-</value>
+  <data name="textBox1.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
   </data>
   </data>
-  <data name="&gt;&gt;LineText.Parent" xml:space="preserve">
+  <data name="&gt;&gt;BtnLogin.Parent" xml:space="preserve">
     <value>$this</value>
     <value>$this</value>
   </data>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

+ 29 - 0
Views/OperationPanel.cs

@@ -64,6 +64,26 @@ namespace MOKA_Factory_Tools
         //自动key提取事件
         //自动key提取事件
         public event AutoKeyRequireDelegate AutoKeyRequire;
         public event AutoKeyRequireDelegate AutoKeyRequire;
 
 
+        //定义一个委托  调用Verify窗口;
+        delegate void ShowVerifyCallback();
+
+        //委托方法
+        private void ShowVerifyDailog()
+        {
+            //右下角消息框Form
+            Verify dlg = new Verify();
+            dlg.ShowDialog();
+        }
+
+        //调用委托
+        private void ShowVerifyDelegate()
+        {
+            //创建委托
+            ShowVerifyCallback wt = new ShowVerifyCallback(ShowVerifyDailog);
+            //这段代码在主窗体类里面写着,this指主窗体
+            this.Invoke(wt, new Object[] { });
+        }
+
         public OperationPanel(Main form1, SQLiteConnection localDB, SQLiteConnection errorDB, MidAddress midAddress1, FunctionSetting functionSetting, WriteCheck writeCheck1, ReadCheck readCheck1, WriteDone writeDone1, bool preload, MidList midList1, string order)
         public OperationPanel(Main form1, SQLiteConnection localDB, SQLiteConnection errorDB, MidAddress midAddress1, FunctionSetting functionSetting, WriteCheck writeCheck1, ReadCheck readCheck1, WriteDone writeDone1, bool preload, MidList midList1, string order)
         {
         {
             InitializeComponent();
             InitializeComponent();
@@ -5017,7 +5037,9 @@ namespace MOKA_Factory_Tools
 
 
                     }
                     }
                 }
                 }
+                // 上报完成后,更新本地数据库Key的数量;
                 UploadCopyCount();
                 UploadCopyCount();
+                // 同时,在线更新Key数量;
                 UpdateKeys(midListNow.keytype, false);
                 UpdateKeys(midListNow.keytype, false);
             }
             }
 
 
@@ -5056,6 +5078,13 @@ namespace MOKA_Factory_Tools
                         CommonMethod.WriteProfileString("MOKAFactoryTools", "GFailCount", (++lastCount).ToString());
                         CommonMethod.WriteProfileString("MOKAFactoryTools", "GFailCount", (++lastCount).ToString());
                     }
                     }
                 }
                 }
+
+                // NG的情况,要弹出密码输入框;
+                if ( CommonMethod.GetLoginAccout().Equals("Huizhou",StringComparison.OrdinalIgnoreCase) )
+                {
+                    // 如果是惠州工厂,启动NG弹密码框功能;
+                    ShowVerifyDelegate();
+                }
             }
             }
             // 上报抄写结果到MES系统中;
             // 上报抄写结果到MES系统中;
             string strOutMsg;
             string strOutMsg;

+ 85 - 0
Views/Verify.Designer.cs

@@ -0,0 +1,85 @@
+namespace MOKA_Factory_Tools
+{
+    partial class Verify
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Verify));
+            this.skinLabel1 = new CCWin.SkinControl.SkinLabel();
+            this.TB_PASSWORD = new System.Windows.Forms.TextBox();
+            this.SuspendLayout();
+            // 
+            // skinLabel1
+            // 
+            this.skinLabel1.AutoSize = true;
+            this.skinLabel1.BackColor = System.Drawing.Color.Transparent;
+            this.skinLabel1.BorderColor = System.Drawing.Color.White;
+            this.skinLabel1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.skinLabel1.Location = new System.Drawing.Point(39, 86);
+            this.skinLabel1.Name = "skinLabel1";
+            this.skinLabel1.Size = new System.Drawing.Size(138, 21);
+            this.skinLabel1.TabIndex = 0;
+            this.skinLabel1.Text = "请输入解锁密码:";
+            // 
+            // TB_PASSWORD
+            // 
+            this.TB_PASSWORD.Location = new System.Drawing.Point(183, 86);
+            this.TB_PASSWORD.Name = "TB_PASSWORD";
+            this.TB_PASSWORD.PasswordChar = '*';
+            this.TB_PASSWORD.Size = new System.Drawing.Size(151, 21);
+            this.TB_PASSWORD.TabIndex = 1;
+            this.TB_PASSWORD.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
+            // 
+            // Verify
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.CanResize = false;
+            this.CaptionBackColorBottom = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.CaptionBackColorTop = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+            this.ClientSize = new System.Drawing.Size(392, 168);
+            this.ControlBox = false;
+            this.Controls.Add(this.TB_PASSWORD);
+            this.Controls.Add(this.skinLabel1);
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "Verify";
+            this.Text = "Verify";
+            this.Load += new System.EventHandler(this.Verify_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private CCWin.SkinControl.SkinLabel skinLabel1;
+        private System.Windows.Forms.TextBox TB_PASSWORD;
+    }
+}

+ 38 - 0
Views/Verify.cs

@@ -0,0 +1,38 @@
+using CCWin;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace MOKA_Factory_Tools
+{
+    public partial class Verify : Skin_Color
+    {
+        public Verify()
+        {
+            InitializeComponent();
+        }
+
+        private void Verify_Load(object sender, EventArgs e)
+        {
+
+        }
+
+        private void textBox1_KeyDown(object sender, KeyEventArgs e)
+        {
+            // 判断是否回车登录;
+            if (e.KeyCode == Keys.Enter)
+            {
+                if ( TB_PASSWORD.Text == "123456" )
+                {
+                    this.Close();
+                }
+            }
+        }
+    }
+}

+ 315 - 0
Views/Verify.resx

@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAMAEBAQAAEABAAoAQAANgAAABAQAAABAAgAaAUAAF4BAAAwMAAAAQAgAKglAADGBgAAKAAAABAA
+        AAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
+        AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAdnR3AAAAAHbGRmxoAAAHZHZWR0
+        ZwAHxnRsdkbGcAZkbHZGVnRgdHR2hGxkZWh2xkeGVnRsZ2R2R/iHxnZGZWxmjH9kZWV8Z0f2eGVsZ3ZG
+        RoiMZlZIBlZ8ZGdGx2AIRkZWxlZkgAB8dsZ0ZWcAAAhGdGRmgAAAAAdlZ4AAAPgfAADgBwAAwAMAAIAB
+        AACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAIABAADAAwAA4AcAAPgfAAAoAAAAEAAAACAA
+        AAABAAgAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAI5LIACOTCEAkE8lAJRULACWWDAAmV02AJ1k
+        PwCeZkEAp3NSAKh0UwCqeFcArn9hALuTegC8lXsAzrGfAM+zoQDSt6cA2MGyANzIuwDl1s0A59nPAOnc
+        1ADy6uUA9/LvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAADggDAwgOAAAAAAAAAAAOAgICAgIC
+        AgIOAAAAAAALAgICAgICAgICAgsAAAAOAgICAgICAgICAgICDgAAAgICAQEBAQEBAQEBAQIADgICAQEF
+        DwIBAQEBAQECDggCAgEBBhQCAQEBAQEBAggDAgIBAQYYExIMAQEBAQIDAwICAQEGFAQHFwMCAQEBAwgC
+        AgEBBhYICxcCAgEBAQgOAgIBAQQREQ8JAQEBAQIOAAICAQICAQEBAQEBAQECAAAOAQEBAQEBAQEBAQEB
+        DgAAAAsCAQEBAQEBAQEBCwAAAAAADgIBAQEBAQECDQAAAAAAAAAADggDAwgOAAAAAAD4HwAA4AcAAMAD
+        AACAAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAHAAD4HwAAKAAAADAA
+        AABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOSyACjksgI49MIliOSyGPjkwhtY5L
+        INuOSyDrjksg+I5LIPiOSyDrjksg245MIbaOSyGPj0wiWI5LICOOSyACAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjkshGo5LIG2OSyDFjksg8I5L
+        IP6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUog/o5LIPCOSyDFjksgbY5L
+        IRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI5LIBuOSyCMjksg6o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o5LIOqOSyCMjksgGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOSyAMj0wgdI1L
+        IPOOSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg849MIHOOSyAMAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI9L
+        IC2OSyDGjksg/Y1KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/45LH/2OSyDFj0sgLQAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAjksgT45LIOyNSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jksg7I5LIE8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAI5LIAGRTCFrjkog+I5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/45KIPiRTCFrjksgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJFMIWuOSyD4jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD4kUwhawAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjksgT45KIPiNSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jkog+I5L
+        IE8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPSyAtjksg7I5LIP+OSyD/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/45LIOyPSyAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI5LIAyOSyDGjUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyDFjksgDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI5M
+        IHOOSyD9jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD9jkwgcwAAAAAAAAAAAAAAAAAA
+        AAAAAAAAjksgG45LIPONSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jksg845L
+        IBsAAAAAAAAAAAAAAAAAAAAAjksgjI5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/45LIIwAAAAAAAAAAAAAAACOSyEajksg6o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o5LIOqOSyEaAAAAAAAAAACOSyBtjUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/llgw/qp4V/+qeFf/l1ky/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyBsAAAAAI5LIAKOSyDFjUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/r4Bi/v//
+        ////////s4Zp/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyDFjksgAo5L
+        ICOOSyDwjUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+r4Bi/v7+/v7+/v7+s4Zp/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6OSyDwjksgI49MIliOSyD+jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jUof/o5LIP+OSyD/r4Bi/v//////////s4Zp/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD+j0wiWI5LIY+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/r4Bi/v//////////s4Zp/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jkshjo5MIbWNSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+r4Bi/v7+/v7+/v7+s4Zp/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jkwhtY5LINuOSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/r4Bi/v//
+        ////////vZd+/p1kP/+dZD//nWM//pxiPf+YWjP/j0wi/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg245L
+        IOuOSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5L
+        IP+OSyD/r4Bi/v//////////+vj2/vj18v/49fL/+PTy/vj08f/18O3/7OHa/smplP+ZXjf/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg645LIPiNSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+r4Bi/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+        /v7u5N3+nmQ//o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jksg+I5LIPiOSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/r4Bi/v//////////v5qC/qBoRP+gaET/oGhE/qRv
+        Tf+zhmn/3cm8/v//////////3Mi7/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg+I5LIOuOSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/r4Bi/v//////////s4Zp/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/kE8l/ufZ0P///////Pr5/pNTKv+OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg645LINuNSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+r4Bi/v7+
+        /v7+/v7+s4Zp/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/sqrl/7+/v7+/v7+/p9mQv6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jksg245M
+        IbaOSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5L
+        IP+OSyD/r4Bi/v//////////s4Zp/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/s+yoP///////v7+/p1j
+        Pv+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jkwhtY5LIY+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jUof/o5LIP+OSyD/r4Bi/v//////////s4Zp/o5LIP+OSyD/jUof/o5LIP+OSyD/ml85/vLr
+        5v//////+PTy/pBPJP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jkshjo9MIliNSiD+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+r4Bi/v7+/v7+/v7+07qq/r6ZgP6+mYD+vpiA/sOf
+        if7RtqX+8uvm/v7+/v7+/v7+z7Kg/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSiD+j0wiWI5LICOOSyDwjUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/r4Bi/v///////////v7+/v//
+        /////////v7+/v///////////v7+/v79/f/axbf/k1Qr/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyDwjksgI45LIAKOSyDFjUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/qXdW/urd
+        1v/q3db/6t3V/urd1v/q3db/6t3V/ujb0//h0MX/0LSi/qx8Xf+RUCb/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyDFjksgAgAA
+        AACOSyBtjUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyBsAAAAAAAAAACOSyEajksg6o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o5LIOqOSyEaAAAAAAAAAAAAAAAAjksgjI5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/45LIIwAAAAAAAAAAAAAAAAAAAAAjksgG45LIPOOSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg845LIBsAAAAAAAAAAAAAAAAAAAAAAAAAAI9M
+        IHOOSx/9jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6OSx/9j0wgcwAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAI5LIAyOSyDFjUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyDFjksgDAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPSyAtjksg7I5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/41KH/6OSyD/jksg/45L
+        IOyPSyAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjksgT45KIPiNSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jkog+I5LIE8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJFM
+        IWuOSyD4jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD4kUwhawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAI5LIAGRTCFrjkog+I5LIP+OSyD/jksg/41KH/6OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41K
+        H/6OSyD/jksg/41KH/6OSyD/jksg/45KIPiRTSFrjksgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjksgT45LIOyNSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jksg7I5LIE8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI9LIC2OSyDFjksg/Y1K
+        H/6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg/45LH/2OSyDFjkwgLQAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AACOSyAMjkwgc45LIPOOSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5L
+        IP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jksg/41KH/6OSyD/jksg845MIHOOSyAMAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAI5LIBuOSyCMjksg6o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1K
+        H/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o1KH/6NSh/+jUof/o5LIOqOSyCMjksgGwAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjkshGo5LIGyOSyDFjksg8I5L
+        IP6OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUof/o5LIP+OSyD/jUog/o5LIPCOSyDFjksgbI5L
+        IRoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AACOSyACjksgI49MIliOSyGOjkwhtY5LINuOSyDrjksg+I5LIPiOSyDrjksg2o5MIbWOSyGOj0wiWI5L
+        ICOOSyACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAP//AAD//wAA//wAAD//AAD/8AAAD/8AAP/AAAAD/wAA/4AAAAH/AAD/AAAAAP8AAPwA
+        AAAAPwAA/AAAAAA/AAD4AAAAAB8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAAD
+        AACAAAAAAAEAAIAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAAIAAAAAAAQAAwAAAAAADAADAAAAAAAMAAOAA
+        AAAABwAA4AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAD8AAP8AAAAA/wAA/4AAAAH/
+        AAD/wAAAA/8AAP/wAAAP/wAA//wAAD//AAD//wAA//8AAA==
+</value>
+  </data>
+</root>