Initial commit

This commit is contained in:
2020-10-21 10:43:18 +02:00
commit 56bd02798f
5848 changed files with 2659025 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
Imports System.Reflection
Imports System.Runtime.InteropServices
' Allgemeine Informationen über eine Assembly werden über die folgende
' Attributgruppe gesteuert. Ändern Sie diese Attributwerte, um Informationen,
' die mit einer Assembly verknüpft sind, zu bearbeiten.
' Die Werte der Assemblyattribute überprüfen
<Assembly: AssemblyTitle("")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("")>
<Assembly: AssemblyCopyright("")>
<Assembly: AssemblyTrademark("")>
<Assembly: CLSCompliant(True)>
'Die folgende GUID ist für die ID der Typbibliothek, wenn dieses Projekt in COM angezeigt wird
<Assembly: Guid("BADDDBFE-D783-4EBA-8EB0-1D12F1745FC1")>
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
'
' Haupversion
' Nebenversion
' Buildnummer
' Revisionsnummer
'
' Sie können alle Werte angeben oder auf die standardmäßigen Build- und Revisionsnummern
' zurückgreifen, indem Sie '*' wie unten angezeigt verwenden:
<Assembly: AssemblyVersion("1.0.*")>

182
ColdGen/Backup/Form1.resx Normal file
View File

@@ -0,0 +1,182 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
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">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</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.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:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Button1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="ListBox1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Button2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Button3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Button4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Button4.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk1+AQAAAAAAAHYAAAAoAAAAGAAAABYAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4AA
AAAAAAAAAAAACAd3d3d3d3d3d3d3cA93d3d3d3d3d3d3cA+IiIiIiIiIiIiHcA+IiIiAAACIiIiHcA+I
iIALu7sAiIiHcA+IiAu7u7u7CIiHcA+IgLu7u7u7sIiHcA+IgLuwAAC7sIiHcA+IC7sLu7sLuwiHcA+I
C7C7u7uwuwiHcA+IC7u7u7u7uwiHcA+IC7u7u7u7uwiHcA+IC7sAu7ALuwiHcA+IgLsAu7ALsIiHcA+I
gLu7u7u7sIiHcA+IiAu7u7u7CIiHcA+IiIALu7sAiIiHcA+IiIiAAACIiIiHcA+IiIiIiIiIiIiHcA//
////////////cIAAAAAAAAAAAAAACA==
</value>
</data>
<data name="Label3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="TextBox1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="TextBox2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Label4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Button5.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Button5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk1+AQAAAAAAAHYAAAAoAAAAGAAAABYAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4AA
AAAAAAAAAAAACAd3d3d3d3d3d3d3cA93d3d3d3d3d3d3cA+IiIiIiIiIiIiHcA+IiIiAAACIiIiHcA+I
iIAKqqoAiIiHcA+IiAqqqqqqCIiHcA+IgKqqqqqqoIiHcA+IgKoKqqoKoIiHcA+ICqoAqqAKqgiHcA+I
CqqgAACqqgiHcA+ICqqqqqqqqgiHcA+ICqqqqqqqqgiHcA+ICqoAqqAKqgiHcA+IgKoAqqAKoIiHcA+I
gKqqqqqqoIiHcA+IiAqqqqqqCIiHcA+IiIAKqqoAiIiHcA+IiIiAAACIiIiHcA+IiIiIiIiIiIiHcA//
////////////cIAAAAAAAAAAAAAACA==
</value>
</data>
<data name="ToolTip1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</data>
<data name="ToolTip1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="$this.Name">
<value>Form1</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAAAAAAAAAAAAAAAAADAd4gAAAAAAAAA
AAAAAAAMwHd3iAAAAAAAAAAAAAAAzMgAd3eIAAAAAAAAAAAADMyAzAB3d4gAAAAAAAAAAMzIDMzMAHd3
AAAAAAAAAAzMgMwADMwAdwAAAAAAAADMyAzAB3AMzAAAAAAAAAAMzIDMDAd3cAzMAAAAAAAAzAAAAAAA
B3dwDAAAAAAAAMBwAHd3CIAHd3AAAAAAAAAHD/8AAAj/8Ad3cAAAAAAAcP//+ICP///wB3AAAAAABw//
/4gI/3f///AAAAAAAHD///iAj///d///8AAAAAcP//+ICP93//93/wAAAABw///4gI///3f///AAAAAH
D///iAj/d///d/8AAAAAcP//+ICP//93///wAAAAAA///4gI/3f//3f/AAAAAAAAD/iAAA//d///8AAA
AAAAAAAAAAAAD/93/wAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
//////////+P////A////gD///wAP//4AA//8AAD/+AAB//AAAf/gAAH/wAAA/4AAAf+AAAH/gAAAf4A
AAP8AAAD+AAAA/AAAAfgAAAPwAAAH4AAAD8AAAB/4CAA//h4Af///gP///+H////7///////////////
//8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA
AAAAAAAARwAAAAAAAARAdwAAAAAARAwAdwAAAARAx8wAAAAARAzAd8wAAAAAAAAAd8AAAI/4CP8AcAAI
/4CPf/8AAI/4CPf38AAI/4CPf38AAAAAAA/38AAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAA//8AAP8/
AAD+DwAA/AMAAPgBAADwAQAA4AEAAOAAAADgAQAAwAEAAIADAAAABwAAgA8AAP4fAAD/vwAA//8AAA==
</value>
</data>
</root>

222
ColdGen/Backup/Form1.vb Normal file
View File

@@ -0,0 +1,222 @@
Imports System.IO
Public Class Form1
Inherits System.Windows.Forms.Form
Dim WithEvents fw As New FileSystemWatcher
#Region " Vom Windows Form Designer generierter Code "
Public Sub New()
MyBase.New()
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
End Sub
' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' Für Windows Form-Designer erforderlich
Private components As System.ComponentModel.IContainer
'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
'Sie kann mit dem Windows Form-Designer modifiziert werden.
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents Button3 As System.Windows.Forms.Button
Friend WithEvents Button4 As System.Windows.Forms.Button
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents Button5 As System.Windows.Forms.Button
Friend WithEvents ToolTip1 As System.Windows.Forms.ToolTip
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
Me.Button1 = New System.Windows.Forms.Button()
Me.ListBox1 = New System.Windows.Forms.ListBox()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button3 = New System.Windows.Forms.Button()
Me.Button4 = New System.Windows.Forms.Button()
Me.Label3 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.Label4 = New System.Windows.Forms.Label()
Me.Button5 = New System.Windows.Forms.Button()
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(232, 8)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(22, 22)
Me.Button1.TabIndex = 1
Me.Button1.Text = "..."
'
'ListBox1
'
Me.ListBox1.Location = New System.Drawing.Point(0, 96)
Me.ListBox1.Name = "ListBox1"
Me.ListBox1.Size = New System.Drawing.Size(256, 69)
Me.ListBox1.TabIndex = 2
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(232, 32)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(22, 22)
Me.Button2.TabIndex = 4
Me.Button2.Text = "..."
'
'Button3
'
Me.Button3.Location = New System.Drawing.Point(160, 64)
Me.Button3.Name = "Button3"
Me.Button3.Size = New System.Drawing.Size(96, 23)
Me.Button3.TabIndex = 5
Me.Button3.Text = "Journal löschen"
'
'Button4
'
Me.Button4.BackgroundImage = CType(resources.GetObject("Button4.BackgroundImage"), System.Drawing.Bitmap)
Me.Button4.Location = New System.Drawing.Point(8, 64)
Me.Button4.Name = "Button4"
Me.Button4.Size = New System.Drawing.Size(24, 23)
Me.Button4.TabIndex = 6
Me.ToolTip1.SetToolTip(Me.Button4, "Überwachung stoppen")
Me.Button4.Visible = False
'
'Label3
'
Me.Label3.Location = New System.Drawing.Point(8, 8)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(48, 23)
Me.Label3.TabIndex = 7
Me.Label3.Text = "Input:"
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(56, 8)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(176, 20)
Me.TextBox1.TabIndex = 8
Me.TextBox1.Text = "d:\edoka\edkb07"
'
'TextBox2
'
Me.TextBox2.Location = New System.Drawing.Point(56, 32)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(176, 20)
Me.TextBox2.TabIndex = 9
Me.TextBox2.Text = "d:\edoka\edkb07"
'
'Label4
'
Me.Label4.Location = New System.Drawing.Point(8, 40)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(48, 23)
Me.Label4.TabIndex = 10
Me.Label4.Text = "Output"
'
'Button5
'
Me.Button5.BackgroundImage = CType(resources.GetObject("Button5.BackgroundImage"), System.Drawing.Bitmap)
Me.Button5.Location = New System.Drawing.Point(8, 64)
Me.Button5.Name = "Button5"
Me.Button5.Size = New System.Drawing.Size(24, 23)
Me.Button5.TabIndex = 11
Me.ToolTip1.SetToolTip(Me.Button5, "Überwachung starten")
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(264, 173)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button5, Me.Label4, Me.TextBox2, Me.TextBox1, Me.Label3, Me.Button4, Me.Button3, Me.Button2, Me.ListBox1, Me.Button1})
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "Form1"
Me.Text = "Banklagernd COLD-Simulator"
Me.WindowState = System.Windows.Forms.FormWindowState.Minimized
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Me.Label1.Text = Me.FolderBrowserDialog1.SelectedPath
'Me.Label2.Text = Me.FolderBrowserDialog1.SelectedPath
'fw.Path = Me.FolderBrowserDialog1.SelectedPath
'fw.Filter = "*.txt"
'fw.EnableRaisingEvents = True
fw.Path = Me.TextBox1.Text
fw.Filter = "*.txt"
fw.EnableRaisingEvents = True
Me.Button5.Visible = False
Me.Button4.Visible = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f As New FolderSelect()
f.ShowDialog()
Me.TextBox1.Text = f.fullPath
End Sub
Private Sub fw_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles fw.Created
Me.ListBox1.Items.Add("Processing: " & e.Name)
System.Threading.Thread.Sleep(5000)
Dim na As String
Dim na1 As String
na = Microsoft.VisualBasic.Left(e.Name, InStr(e.Name, ".", CompareMethod.Text) - 1)
na1 = UCase(na)
If na1 = "RETURN" Or na1 = "UPDATEEDK" Or na1 = "UPDATEBL" Or na1 = "RETURN" Or na1 = "FILECOUNT" Or na1 = "DOSTART" Or na1 = "DUMMY" Or na1 = "DTOFILETRANSFERTXT" Or na1 = "DTOFILETRANSFERBIN" Then
Exit Sub
End If
FileCopy(Me.TextBox1.Text + "\testoutput.pdf", Me.TextBox2.Text & "\" & na & ".pdf")
Me.ListBox1.Items.Add("Finished: " & na & ".pdf")
File.Delete(e.FullPath)
Dim owriter As New StreamWriter(Me.TextBox2.Text & "\" & na & ".ret")
owriter.WriteLine("0")
owriter.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim f As New FolderSelect()
f.ShowDialog()
Me.TextBox2.Text = f.fullPath
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.ListBox1.Items.Clear()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Me.Button5.Visible = True
Me.Button4.Visible = False
fw.EnableRaisingEvents = False
MsgBox("Überwachung gestoppt.")
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
fw.Path = Me.TextBox1.Text
fw.Filter = "*.txt"
fw.EnableRaisingEvents = True
Me.Button5.Visible = False
Me.Button4.Visible = True
MsgBox("Überwachung gestartet")
End Sub
End Class

View File

@@ -0,0 +1,21 @@
Microsoft Visual Studio Solution File, Format Version 7.00
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "coldgen", "coldgen.vbproj", "{36BD53C3-0C62-4C6F-86A5-E284A5EB5206}"
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
ConfigName.0 = Debug
ConfigName.1 = Release
EndGlobalSection
GlobalSection(ProjectDependencies) = postSolution
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{36BD53C3-0C62-4C6F-86A5-E284A5EB5206}.Debug.ActiveCfg = Debug|.NET
{36BD53C3-0C62-4C6F-86A5-E284A5EB5206}.Debug.Build.0 = Debug|.NET
{36BD53C3-0C62-4C6F-86A5-E284A5EB5206}.Release.ActiveCfg = Release|.NET
{36BD53C3-0C62-4C6F-86A5-E284A5EB5206}.Release.Build.0 = Release|.NET
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

BIN
ColdGen/Backup/coldgen.suo Normal file

Binary file not shown.

View File

@@ -0,0 +1,122 @@
<VisualStudioProject>
<VisualBasic
ProjectType = "Local"
ProductVersion = "7.0.9466"
SchemaVersion = "1.0"
ProjectGuid = "{36BD53C3-0C62-4C6F-86A5-E284A5EB5206}"
>
<Build>
<Settings
ApplicationIcon = ""
AssemblyKeyContainerName = ""
AssemblyName = "coldgen"
AssemblyOriginatorKeyFile = ""
AssemblyOriginatorKeyMode = "None"
DefaultClientScript = "JScript"
DefaultHTMLPageLayout = "Grid"
DefaultTargetSchema = "IE50"
DelaySign = "false"
OutputType = "WinExe"
OptionCompare = "Binary"
OptionExplicit = "On"
OptionStrict = "Off"
RootNamespace = "coldgen"
StartupObject = "coldgen.Form1"
>
<Config
Name = "Debug"
BaseAddress = "285212672"
ConfigurationOverrideFile = ""
DefineConstants = ""
DefineDebug = "true"
DefineTrace = "true"
DebugSymbols = "true"
IncrementalBuild = "true"
Optimize = "false"
OutputPath = "bin\"
RegisterForComInterop = "false"
RemoveIntegerChecks = "false"
TreatWarningsAsErrors = "false"
WarningLevel = "1"
/>
<Config
Name = "Release"
BaseAddress = "285212672"
ConfigurationOverrideFile = ""
DefineConstants = ""
DefineDebug = "false"
DefineTrace = "true"
DebugSymbols = "false"
IncrementalBuild = "false"
Optimize = "true"
OutputPath = "bin\"
RegisterForComInterop = "false"
RemoveIntegerChecks = "false"
TreatWarningsAsErrors = "false"
WarningLevel = "1"
/>
</Settings>
<References>
<Reference
Name = "System"
AssemblyName = "System"
/>
<Reference
Name = "System.Data"
AssemblyName = "System.Data"
/>
<Reference
Name = "System.Drawing"
AssemblyName = "System.Drawing"
/>
<Reference
Name = "System.Windows.Forms"
AssemblyName = "System.Windows.Forms"
/>
<Reference
Name = "System.XML"
AssemblyName = "System.Xml"
/>
</References>
<Imports>
<Import Namespace = "Microsoft.VisualBasic" />
<Import Namespace = "System" />
<Import Namespace = "System.Collections" />
<Import Namespace = "System.Data" />
<Import Namespace = "System.Drawing" />
<Import Namespace = "System.Diagnostics" />
<Import Namespace = "System.Windows.Forms" />
</Imports>
</Build>
<Files>
<Include>
<File
RelPath = "AssemblyInfo.vb"
SubType = "Code"
BuildAction = "Compile"
/>
<File
RelPath = "folderSelect.vb"
SubType = "Form"
BuildAction = "Compile"
/>
<File
RelPath = "folderSelect.resx"
DependentUpon = "folderSelect.vb"
BuildAction = "EmbeddedResource"
/>
<File
RelPath = "Form1.vb"
SubType = "Form"
BuildAction = "Compile"
/>
<File
RelPath = "Form1.resx"
DependentUpon = "Form1.vb"
BuildAction = "EmbeddedResource"
/>
</Include>
</Files>
</VisualBasic>
</VisualStudioProject>

View File

@@ -0,0 +1,48 @@
<VisualStudioProject>
<VisualBasic>
<Build>
<Settings ReferencePath = "" >
<Config
Name = "Debug"
EnableASPDebugging = "false"
EnableASPXDebugging = "false"
EnableUnmanagedDebugging = "false"
EnableSQLServerDebugging = "false"
RemoteDebugEnabled = "false"
RemoteDebugMachine = ""
StartAction = "Project"
StartArguments = ""
StartPage = ""
StartProgram = ""
StartURL = ""
StartWorkingDirectory = ""
StartWithIE = "false"
/>
<Config
Name = "Release"
EnableASPDebugging = "false"
EnableASPXDebugging = "false"
EnableUnmanagedDebugging = "false"
EnableSQLServerDebugging = "false"
RemoteDebugEnabled = "false"
RemoteDebugMachine = ""
StartAction = "Project"
StartArguments = ""
StartPage = ""
StartProgram = ""
StartURL = ""
StartWorkingDirectory = ""
StartWithIE = "false"
/>
</Settings>
</Build>
<OtherProjectSettings
CopyProjectDestinationFolder = ""
CopyProjectUncPath = ""
CopyProjectOption = "0"
ProjectView = "ProjectFiles"
ProjectTrust = "0"
/>
</VisualBasic>
</VisualStudioProject>

View File

@@ -0,0 +1,510 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
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">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</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.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:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Panel2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="btnSelect.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="btnCancel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="Panel3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="TreeView1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="ImageList1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="ImageList1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</data>
<data name="ImageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuMzMw
MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT
eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA
AADaDQAAAk1TRnQBSQFMAgEBCAEAAQkBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQC
AAEoAwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB
3AHAAQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IB
AAM5AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8B
MwMAAWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYC
AAFmAZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMC
AAHMAWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQAB
ZgEAATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8B
AAEzAWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQAB
MwGZAWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQAB
MwLMAQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQAB
MwEAAWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMB
mQEAAWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQAB
ZgGZAWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYB
zAH/AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMB
mQEAAZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgAB
mQFmATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwB
AAKZAf8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB
/wEzAQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQAB
mQEAAcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYC
AAHMAWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYB
AAHMApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8C
AAHMAf8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQAB
mQEAAcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMB
AAHMAmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB
/wGZAcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC
/wEzAQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC
/wFmAQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gB
AAHwAfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AEgAC
Ag4AATMBLQ4AASsBKg4AAioMAAICATQCAgsAAjMBLQEzAS0LAAIrASoBMQwAAioBKwExASoJAAICAjkB
NAEuAQIJAAMzAS0CMwEtCQACKwEyASoCMQoAAioCWQExASsBKgcAAgIEOQI0AQIHAAQzAS0BMwH6ATMB
LQcAAisCMgErATIBWQExCAACKgRZATEBKwEqBQACAgY5AjQBAgUABzMC+gEzAS0FAAIrAzIBMQEyAlkB
MQYAAioGWQExASsBKgQAAQIIOQI0AQIEAAUzAcIBMwP6ATMBLQQAASsEMgFZATEDWQExBQABKghZATEB
KwEqAwABNAHCCDkCNAECAwAEMwLCATME+gEzAS0DAAErAzICmgExBFkBMQQAATEBGghZATEBKwEqAwAB
NAHCCTkBNAECAgADMwLCAjMF+gEzAS0CAAErAjICmgIxBVkBMQQAATEBGglZASsBKgMAATQBwgg5AcIB
OQECAQACMwLCAjMG+gLCAS0BAAErATICmgIxBlkCmgQAATEBGghZARoBWQEqAwABNAHCBjkCwgI0AQAB
MwH/AcICMwHCBfoCwgIzAQABMQEaAZoCMQGaBVkCmgIxBAABMQEaBlkCGgIxBAABNAHCBDkCwgI0BAAC
MwEAATMBwgT6AcICMwQAAjEBAAExAZoEWQGaAjEGAAExARoEWQIaAjEGAAE0AcICOQLCATkBLgkAATMB
wgP6AcIBMwkAATEBmgNZAZoBMQgAATEBGgJZAhoBWQErCAABNAPCAjkBLgoAATMBwgL6AcIBMwoAATEB
mgJZAZoBKwkAATEDGgJZASsJAAE0AcICOQLCAS4KAAEzAcIB+gLCATMKAAExAZoBWQKaASsJAAExARoC
WQIaASsJAAI0AsICNAsAATMCwgIzCwABMQHDAZoCMQoAAjECGgIxCwADNA4AAjMOAAIxDQADMUsADUsD
AA1LIgAOUgFLAQAOUgFLAgAKSwYACksEAAFSAXoBUgGgCHoBWAGgAVIBSwFSAXoBUgGgCHoBWAGgAVIB
SwEAC1IBSwQAC1IBSwMAAVIBegFSAaAIegFYAaABUgFLAVIBegFSAaAIegFYAaABUgFLAlIBoAl6AVIB
KgIAAlIBoAl6AVIBKgIAAVIBegFSAaAHmgGgAVgBoAFSAUsBUgF6AVIBoAeaAaABWAGgAVIBSwJSAXoB
oAh6AVgBKgIAAlIBegGgCHoBWAEqAgABUgF6AVIJoAF5AaABUgFLAVIBegFSCaABeQGgAVIBSwJSAVgI
oAGaAVkBKgIAAlIBWAigAZoBWQEqAgABUgF6AVIJoAF6AaABUgFLAVIBegFSCaABegGgAVIBSwFSAVgB
UgmgAnkBKgEAAVIBWAFSCaACeQEqAQABUgF6AVIB/wX2A/8BmgH2AVIBSwFSAXoBUgH/BfYD/wGaAfYB
UgFLAVIBegFSCaABegGgASoBAAFSAXoBUgmgAXoBoAEqAQABUgGgAZoMUgEAAVIBoAGaDFIBAAFSAZoB
UgF5Av8B9gX/AZoB/wEqAQABUgGaAVIBeQL/AfYF/wGaAf8BKgEAAVIGoAX/ASoDAAFSBqAF/wEqAwAB
UgGgAVgLUgEqAQABUgGgAVgLUgEqAQABUgH/BKAB/wVSASoDAAFSAf8EoAH/BVIBKgMAAVIGoAX/AVIB
SwIAAVIGoAX/AVIBSwMAAVID/wH2AVIKAAFSA/8B9gFSCQABUgH/BKAB/wZSAwABUgH/BKAB/wZSBQAE
UgwABFILAAFSBP8BUgoAAVIE/wFSKwAEUgwABFJKAAFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQAB
AQUAAYABARYAA/+BAAH/AfkB/wH5Af8B+QH/AfkB/wHgAf8B4AH/AeEB/wHgAf8BgAH/AYAB/wGBAf8B
gAH+AQAB/gEAAf4BAQH+AQAB+AEAAfgBAAH4AQEB+AEAAfABAAHwAQAB8AEBAfABAAHgAQAB4AEAAeAB
AQHgAQAB4AEAAcABAAHAAQEB4AEAAeABAAGAAQABgAEBAeABAAHgAQEBAAEBAQABAQHgAQEB4AEHAZAB
BwGQAQcB4AEHAeABHwHwAR8B8AEfAeABHwHgAT8B8AE/AfABPwHgAT8B4AE/AfABPwHwAT8B4AE/AeAB
fwHwAX8B8AF/AeABfwHxAf8B+QH/AfkB/wHxCf8BwAEBAcABAQT/AYABAAGAAQABwAEPAcABDwQAAYAB
BwGAAQcFAAEDAQABAwUAAQMBAAEDBQABAwEAAQMFAAEBAQABAQUAAQEBAAEBAQABAQEAAQEBAAEBAQAB
AQEAAQcBAAEHAQABAQEAAQEBAAEHAQABBwEAAQMBAAEDAYEB/wGBAf8BAAEHAQABBwHDAf8BwwH/AYEB
/wGBBf8BwwH/AcMJ/ws=
</value>
</data>
<data name="$this.Name">
<value>FolderSelect</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAYAEBAAAAEACABoBQAAZgAAABAQAAABABgAaAMAAM4FAAAgIAAAAQAIAKgIAAA2CQAAICAAAAEA
GACoDAAA3hEAADAwAAABAAgAqA4AAIYeAAAwMAAAAQAYAKgcAAAuLQAAKAAAABAAAAAgAAAAAQAIAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AREJvAFdGQABjWFEAXVFJAFFLRwAAAAAARUxKAJn/
/wCf//8Aof//AKP+/wCk//8Aqf7/AK/+/wCy//8As///ALr//wDA//8Awf//AMP//wDJ//8Ay///AM7/
/wDP//8A0v//ANf//wDY//8A4P//AOP//wDm//8A7f//APD//wBITEwA8///APf//wD5//8Aj/z/AKb5
/AC5/f8AxP3/AN3+/wDj/v8AlPr/AK/7/wCR9/8Azfv/AIny/ACP9f8Aq/L5ANP7/wDY+/8AVun/AIrw
/wCM8v8AkvL/AK/s9QCB6vwAie//AKDy/wCr8v8A0/n/APj+/wA53/8AVMzmAIXr/wCG7P8Am+//ALXy
/wDo+/8AAMz/ADe93wBy3vkAgOb/AIHn/wCC6P8AOFNZALHm8gAhZnoAQsHmAEa/3wBNvNwAWs/vAC5f
bQAsWmcAZcvmAHjf/AB84v8AfuT/AH/l/wCG5v8ARnSBAIvm/wCQ5v8AlOn/AMTy/wDW9v8ACJ7PAAyE
qwASi7MAEX+iAB+r2QAZc48AJ7DcABltiAAts98ANbfiADa54gAwo8kAMqbMADyoygBHw+kATMXsAEm7
3wBErtEASr3fAFLI7wBe0PIAWb/fAE2kwABGkqoALFhlAHje/wBjscoAcMbiAJXm/wCa5v8AZ5SiAKrq
/wDP7PUA7/n8AACZzAAAlskABI++AAedzwAJiLQADqHSABV3mAAiq90AJKnZABt9ngAmqtkAK7HfACqr
1wA3t+YAOLjmAD2z3AA/tN0ANZm7ACRlewBHwOwARLfiAEGqzwBNud8ASajIAF3M9QBSstUAVLfYAFOx
0wBHla8AXsTmAGC/3wBw2fwAWq7KAGK62AB33f8AbLvWAIrh/wCAzOYAhM/pAI/S6QCf5v8Ao+b/AJ3Y
7ACv3+8A2PP8AN/y+QD3/f8A+/7/ADGy5QA9t+oATb3sAFPF8gBw1v8Actj/AHva/wB1y+wAgtr/AJHW
8gCX2PIAnNryAKjm/wCi2/IA5PX8AACv/wBPwPMAV8X4AG3T/wBqy/YAdM/5AHvS+gCs5v8A0fH/AOX3
/wDs+f8AA6TwAAep9gAPo+4AYcn8AGjO/wB2z/kAftP8AITX/wCG1v4A3vT/AACm/wBzzP8A3PL/AB2m
/wAAif8AA2vTABB63gBgn+8AB2b2ADmG/AAXZOYAOYD/AABQ/wDs8v8AUID5ALbM/wATS+kATHj8AGaM
/wAdTf8Avcz/AAAz/wAEM/EABTTyAAo5+gALNugAEED/ABc71gAlSuYAMFn/AD5m/wCfs/8AETPMADNQ
1ABFUqUAISyDADA6igBPVJAAZmZmAAAAAAAH/v4HBwcHBwcHBwcHBwcHB1xUIv7+BwcHBwcHBwcHBwdj
u22IaXoI/v4HBwcHBwd8Zcu5pqN1kGRnev4HBwcHfG2vW0pKSkpKSnZtCAcHB4B8fD02NjY2NjY2Ok/+
Bwd8fJU+LCwsLCwsLESZAwcHfICYgignDAwNDQ09RXr+B3yqppunr4IdExMTRct4Awd8RUNDQ1Z3fCMg
Yefyr3oHfGAJCQkJCUmdn/Dm5E7wB3yCCQkJYIIpKRMS8vDw/AcHeK/CwqepgHjy8vBA8vPzBwd8fHwH
BwcHBwfy8PIHBwcHBwcHBwcHBwfyB/IH8gcHBwcHBwcHBwcHBwfyBwcHn//HfYP/WFiAP1hYAA9YWAAH
dnAAA4j+AAMHBwABBwcAAciQAAFKSgABSkoAAUpKgABKSsfjbHr/1QcH//cHBygAAAAQAAAAIAAAAAEA
IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoKSgpKnsoKSmGKyYlay0iHEgsJR88KSklMicn
LCUoKCgaLi4jEiIzMwwcOTkHAEBAAwAAAAEAAAAAAAAAAAhbhK0XRFvTJi0x2DIdEs4xHhPDLSUftCoo
JpspKCd4KyYjVC0mIEApKSkyJSwsISgoNg8zMzMEAAAAAQAAAABAmb//ccfp/ymfz/8OhLb/DGGF+xdD
WfQkMjfpLSIc1zEdE8cuIx24KiknnCopK2gmJiYqLS0tDgAAAAIAZpkgEICv/9Tz//912///ddv//27X
/P9SyO//NavW/x+Rv/8JaZD8FUpk9iMyOeUwHxa5KyYnXScnJx85HBwHAGaZQDmdzP+v2en/h+f//4Dm
//+A5v//gOb//4Dm//+A5v//gOb//2HU8v8posz/Kicl4S4nJKIsKSE3KCgoDwBmmUBvvub/ZK7O/670
//+K8P//ivD//4rw//+K8P//ivD//4rw//+K8P//gej8/x1YcfkyHhTGLCchWCsrIx0AZplAbMnx/zKa
yv/W/f//lPr//5T6//+U+v//lPr//5T6//+U+v//lPr//5rx//9GrMz/LiIc3ywoJpcuKiYxAGaZQHPM
8v9GrN//yeny/7T///+m////pv///6b///+m////pv///6b///+p8v//tPL5/xhJX/YzIRm/LCQkSgBm
mXB+0vL/dtz//z+iyf+AvNb/r9bm/8Hs9f/f////wP///8D////A////uvL//9Ly//9Zor7+MR0W1Sgn
MYMAZpmAvO7//4bs//+G7P//huz//2bM5v9WvNn/aLXS//T////s////2fL//6jP//89Zv//ueLv/xw4
VewpIzikAHOmgMX4//+Z////mf///5n///+Z////mf///3zi7P9NudL/UK/M/wpA//9Qifn/IHn8/zBZ
//8QM6b0JyNCnQBtoHDF6/X/mf///5n///+Z////wfb8/73v+f/F/f//wP3//3PM//9Wr///AML//xPS
//8Gh+T9Hipp6SIkXrwAZpkQQpvA8qvl8v/f////3v///2GlxPgRT22lCWWNoSyBqMEENubQAFns/wDM
//8w3P//Apzz/Qkv1PAUKqCrKAAAACAAAABAAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8AREJvAFdGQABjWFEAXVFJAFFLRwAAAAAARUxKAJn//wCf//8Aof//AKP+/wCk//8Aqf7/AK/+
/wCy//8As///ALr//wDA//8Awf//AMP//wDJ//8Ay///AM7//wDP//8A0v//ANf//wDY//8A4P//AOP/
/wDm//8A7f//APD//wBITEwA8///APf//wD5//8Aj/z/AKb5/AC5/f8AxP3/AN3+/wDj/v8AlPr/AK/7
/wCR9/8Azfv/AIny/ACP9f8Aq/L5ANP7/wDY+/8AVun/AIrw/wCM8v8AkvL/AK/s9QCB6vwAie//AKDy
/wCr8v8A0/n/APj+/wA53/8AVMzmAIXr/wCG7P8Am+//ALXy/wDo+/8AAMz/ADe93wBy3vkAgOb/AIHn
/wCC6P8AOFNZALHm8gAhZnoAQsHmAEa/3wBNvNwAWs/vAC5fbQAsWmcAZcvmAHjf/AB84v8AfuT/AH/l
/wCG5v8ARnSBAIvm/wCQ5v8AlOn/AMTy/wDW9v8ACJ7PAAyEqwASi7MAEX+iAB+r2QAZc48AJ7DcABlt
iAAts98ANbfiADa54gAwo8kAMqbMADyoygBHw+kATMXsAEm73wBErtEASr3fAFLI7wBe0PIAWb/fAE2k
wABGkqoALFhlAHje/wBjscoAcMbiAJXm/wCa5v8AZ5SiAKrq/wDP7PUA7/n8AACZzAAAlskABI++AAed
zwAJiLQADqHSABV3mAAiq90AJKnZABt9ngAmqtkAK7HfACqr1wA3t+YAOLjmAD2z3AA/tN0ANZm7ACRl
ewBHwOwARLfiAEGqzwBNud8ASajIAF3M9QBSstUAVLfYAFOx0wBHla8AXsTmAGC/3wBw2fwAWq7KAGK6
2AB33f8AbLvWAIrh/wCAzOYAhM/pAI/S6QCf5v8Ao+b/AJ3Y7ACv3+8A2PP8AN/y+QD3/f8A+/7/ADGy
5QA9t+oATb3sAFPF8gBw1v8Actj/AHva/wB1y+wAgtr/AJHW8gCX2PIAnNryAKjm/wCi2/IA5PX8AACv
/wBPwPMAV8X4AG3T/wBqy/YAdM/5AHvS+gCs5v8A0fH/AOX3/wDs+f8AA6TwAAep9gAPo+4AYcn8AGjO
/wB2z/kAftP8AITX/wCG1v4A3vT/AACm/wBzzP8A3PL/AB2m/wAAif8AA2vTABB63gBgn+8AB2b2ADmG
/AAXZOYAOYD/AABQ/wDs8v8AUID5ALbM/wATS+kATHj8AGaM/wAdTf8Avcz/AAAz/wAEM/EABTTyAAo5
+gALNugAEED/ABc71gAlSuYAMFn/AD5m/wCfs/8AETPMADNQ1ABFUqUAISyDADA6igBPVJAAZmZmAAAA
AAAHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHfKBc/v7+BwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwd8fZqEY2dU/v7+BwcHBwcHBwcHBwcHBwcHBwcHBwcHB5uiy8a3kYuHhoqW/v7+BwcH
BwcHBwcHBwcHBwcHBwcHbZgBurm5ubmcl4+JhWX+/v7+BwcHBwcHBwcHBwcHBweZtoKBpqampqampqaj
dWtmhIj+/v7+BwcHBwcHBwcHB53HfWFYWFhYWFhYWFhYWFhYdnBoYoj+BwcHBwcHBwcHn8iQskpKSkpK
SkpKSkpKSkpKSkpabHoHBwcHBwcHBweMyYuCPUNDQ0NDQ0NDQ0NDQ0NDQ1lXZAUHBwcHBwcHB47Itas+
NjY2NjY2NjY2NjY2NjY2S1tBTQcHBwcHBwcHc9PElD8xMTExMTExMTExMTExMTFCXSeNBAcHBwcHBwdz
1MW0sS0sLCwsLCwsLCwsLCwsLDteElEIBwcHBwcHB3PW0cSrGgkJCQkJCQkJCQkJCQkJN34VMmn+BwcH
BwcHc9XS0pMjEAsLCwsLCwsLCwsLCws4fxgYUiIHBwcHB3O7vLi4kqsBIR8cFhMRERERERERETysGxs5
T/4HBwcHc72oe3t7cWqhoqmvggEbFBQUFBQUPa0dHR1vBgcHBwdzvl9MTExMTExMSVNQcoMeGRkZGRlF
wOrr2k5VBwcHB3O/RDs7Ozs7Ozs7Ozs6dIMlJCAgH2DK9u3nI5UDBwcHc8EuLi4uLi4uLi4uLi4wSFZ3
qeby9wH27ezl9e8HBwdz1wkJCQkJCQkJCQkJCQkJCQkJ4e3t3ejt3/Xt8QcHB3PMDAkJCQkJCQkJCQkJ
CQkJCQkJ4+3cR0fO5O4CBwcHc6ovCQkJCQkJDrDNNDMpKA8K2dnZ20dHR0fD+/7+/gcHc8INCQkJCQpG
pXl4p56enunt7e3YRzUmR0ft7e3+BwcHpLOzKyoXK66ABwcHBwcHB+3t9M9HQDVHR/jz7e0HBwcHpG6k
pKSkpAcHBwcHBwcHBwf+4EdHR0fc/P4HBwcHBwcHBwcHBwcHBwcHBwcHBwcHB/Dt4tDY3u3t+v4HBwcH
BwcHBwcHBwcHBwcHBwcHBwft7e3+7e39+e3t/gcHBwcHBwcHBwcHBwcHBwcHBwcHB+3t/gft7f4H7e0H
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB+3t/gcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB+0H
BwcHBwcH////////////////gf///4Af//+AAf//gAAf/4AAAf+AAAD/gAAA/4AAAH+AAAB/gAAAP4AA
AD+AAAAfgAAAHwAAAA8AAAAPAAAADwAAAAcAAAAHAAAABwAAAAcAAAABgAAAAcAfwAHgP/AH///wA///
4AP//+In///+P////38oAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBA
QAQcOVUJK0BADBpNTQorVVUGAFVVAwAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHktLESJDSiYjPEEzJzc3Lic2NiEsLCwXLTw8ESc7Ow0gQEAIQEBABAAAgAIAAAABAAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAgQEYoJzs+WykyMnsrLSt4LikkZCwsJVIpMS1EKjMzNyYzMygmLy8bKDY2EyQ3
Nw4cOTkJMzMzBQCAgAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt+pIUPdZfDHFRk0CwsKcowIRm7LiUerC4pJJwrKyaILikkcC4o
IlktLSlKKjIuPSk0NCwsLCwdJjMzFCIzMw8uLkYLKytVBgBVVQMAAAACAAAAAQAAAAEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYSsonDG4v9Nud//AJnM/wmDqvwRbov2HFFh6yY4
O9owIRjDLyIasy0nIaMsKyWQLSkkdy4mIV4rKyRNKDAwQCo0NDEmLS0iLCwsFy0tLREnOzsNIEBACEBA
QAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHibS7YL/f/9Hx//9t0///U8Xy/ze3
5v8iq9z/B53P/wOPvv4PdJX5F1xz8SI+RuIxIBfHMCAWti4lHacsKSSWLSgkfi0mIWUsKCJSKSwpRSoz
MzcnNDQnLi4uFiAgIAgAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASPvtJEt+L//////3va
//9y2P//ctj//3LY//9y2P//Xcz1/0fA7P8rsd//DqHS/wCWyf8MfKD6FGN89B9HUuYsJiHPMSEWvC8j
G60tJyCdKyomhyspJGssKCFGMCgoIBozGgoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJjF0k29
7P/P7PX/qur//3fd//933f//d93//3fd//933f//d93//3fd//933f//cNn8/1LI7/81t+L/H6vZ/wCZ
zP8Gh7L9EWqH9hxOXeslNDfaMCEZui8iG40rKCRNJi8vGysrKwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAtoczSasv2/3DG4v/W9v//fOL//3zi//984v//fOL//3zi//984v//fOL//3zi//984v//fOL//3zi
//984v//fOL//17Q8v9Hw+n/J7Dc/wiez/8Gh7P8MCAXxS4oIIArKys2JDc3DgAAAAIAAAAAAAAAAAAA
AAAAAAAAAAAAAC+hytN0z/n/KqvX//f9//+A5v//gOb//4Dm//+A5v//gOb//4Dm//+A5v//gOb//4Dm
//+A5v//gOb//4Dm//+A5v//gOb//4Dm//+A5v//f+X//za54v8dTFruLyQbqSwqJ1YuLi4cADMzBQAA
AAAAAAAAAAAAAAAAAAAAAAAAJKnZ/3vS+v8iqt3/z+z1/6zy//+G7P//huz//4bs//+G7P//huz//4bs
//+G7P//huz//4bs//+G7P//huz//4bs//+G7P//huz//4bs//9+5P//eN/8/xCKsv0wIRfILicjeyov
LzErQCsMAAAAAQAAAAAAAAAAAAAAAAAAAAAmqtn/dM74/z236v+P0un/0/n//4rw//+K8P//ivD//4rw
//+K8P//ivD//4rw//+K8P//ivD//4rw//+K8P//ivD//4rw//+K8P//ivD//4Hn//+G5v//VMzm/yNB
SOcuJR6gLisnTiE3NxcAQEAEAAAAAAAAAAAAAAAAAAAAAE+85v92z/n/TsDz/z+03f/4/v//j/X//4/1
//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//hev//4vm
//+m+fz/F3uc+zAhGMAuKSRwKi8vKzMzMwoAAAABAAAAAAAAAAAAAAAAU73m/37T/P9Xxfj/MbLl/9/y
+f+v+///lPr//5T6//+U+v//lPr//5T6//+U+v//lPr//5T6//+U+v//lPr//5T6//+U+v//lPr//5T6
//+J7///kOb//7r///9Gv9//KjIw3y0lHpgrLitIJDE9FQBVVQMAAAAAAAAAAACZzBBWvub/htb+/2HJ
/P9PwPP/j9Lp/9L///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n/
//+Z////mf///4zy//+V5v//w////6vy+f8SaYX4MCIauy0rJmwmMzMoHDk5CQAAAAEAAAAAAJnMQFrA
5v+E1///aM7//2jO//89s9z/8////7L///+h////of///6H///+h////of///6H///+h////of///6H/
//+h////of///6H///+h////kvL//5rm///O////zv///0283P8qLi7bLSYhkisuLkIrOTkSAABVAwAA
AAAAmcxAdcvs/4La//9w1v//cNb//zi45v+P0un///////D////m////2P///8n////A////s////7P/
//+z////s////7P///+z////s////7P///+g8v//n+b//9f////X////r+z1/xdfdPQwIxu0LConYi01
LSIkJEkHAAAAAQCZzECR1vL/iuH//3je//943v//eN7//0zF7P8ts9//XsTm/2C/3/+AzOb/r9/v/8/s
9f//////1////8H////B////wf///8H////B////wf///6ry//+j5v//4P///+D////g////O6jK/i0m
IdMvJyKJLi4mPS0tLREAAAACAJnMQJfY8v+U6f//guj//4Lo//+C6P//guj//4Lo//+C6P//guj//3Le
+f9az+//QsHm/0m73//v+fz/4////8/////P////z////8/////P////tfL//6jm//9mjP//HU3//9zy
//+x5vL/Hk9d7zEhGrIxJB9jMx0dIyQkJAcAmcxwnNry/5vv//+J7///ie///4nv//+J7///ie///4nv
//+J7///ie///4nv//+J7///ger8/0q93//v+fz/+f////f////u////7P///+b////E8v//rOb//z1m
//8AM///tsz///L///80mbv+Mh0W0TAeHIoxGx85JBIkDgCZzICi2/L/kff//5H3//+R9///kff//5H3
//+R9///kff//5H3//+R9///kff//5H3//+R9///ifL8/ze93/9ly+b/Wb/f/4DM5v9QgPn/EED//5+z
////////P2b//wAz//+9zP//7PL//y9Z//8DMvL9Lh0ili4eKkMoGzYTAJnMgN70//+Z////mf///5n/
//+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///zmG
/P8AM///ADP//wNr0/8TS+n/ADP//2Cf7/8wWf//ADP//wUx5/ksHi+SKiA6TyYePCIAmcyA5ff//6P+
//+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n/
//+Z////mf///zmA//8AM///AIn//wDM//8AzP//A6Tw/wBQ//8DMvH+JCJW2isdMaUrHjd4Kh80SQCZ
zECEz+n/zfv//5n///+Z////mf///5n///+Z////mf///6n+///Y8/z/7Pn//9j7///T+///xP3//7n9
//+v/v//nv///3PM//9zzP//c8z//x2m//8AzP//AMz//wDM//8AzP//AK///xsmf/giI2DmHyRr0ykf
QassHS9zAAAAABWaxszk9fz/pP///5n///+Z////mf///5n///+f////6Pv//1+51/sRcpHGCoGouU2t
zdJDsNToecrm/4jQ6f9MePz/ADP//wAz//8AM///AKb//wDM//9W6f//j/z//wDM//8AzP//ADP//wAz
//8AM///AjL4+CsdM2ooAAAAMAAAAGAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
/wBEQm8AV0ZAAGNYUQBdUUkAUUtHAAAAAABFTEoAmf//AJ///wCh//8Ao/7/AKT//wCp/v8Ar/7/ALL/
/wCz//8Auv//AMD//wDB//8Aw///AMn//wDL//8Azv//AM///wDS//8A1///ANj//wDg//8A4///AOb/
/wDt//8A8P//AEhMTADz//8A9///APn//wCP/P8Apvn8ALn9/wDE/f8A3f7/AOP+/wCU+v8Ar/v/AJH3
/wDN+/8AifL8AI/1/wCr8vkA0/v/ANj7/wBW6f8AivD/AIzy/wCS8v8Ar+z1AIHq/ACJ7/8AoPL/AKvy
/wDT+f8A+P7/ADnf/wBUzOYAhev/AIbs/wCb7/8AtfL/AOj7/wAAzP8AN73fAHLe+QCA5v8Agef/AILo
/wA4U1kAsebyACFmegBCweYARr/fAE283ABaz+8ALl9tACxaZwBly+YAeN/8AHzi/wB+5P8Af+X/AIbm
/wBGdIEAi+b/AJDm/wCU6f8AxPL/ANb2/wAIns8ADISrABKLswARf6IAH6vZABlzjwAnsNwAGW2IAC2z
3wA1t+IANrniADCjyQAypswAPKjKAEfD6QBMxewASbvfAESu0QBKvd8AUsjvAF7Q8gBZv98ATaTAAEaS
qgAsWGUAeN7/AGOxygBwxuIAleb/AJrm/wBnlKIAqur/AM/s9QDv+fwAAJnMAACWyQAEj74AB53PAAmI
tAAOodIAFXeYACKr3QAkqdkAG32eACaq2QArsd8AKqvXADe35gA4uOYAPbPcAD+03QA1mbsAJGV7AEfA
7ABEt+IAQarPAE253wBJqMgAXcz1AFKy1QBUt9gAU7HTAEeVrwBexOYAYL/fAHDZ/ABarsoAYrrYAHfd
/wBsu9YAiuH/AIDM5gCEz+kAj9LpAJ/m/wCj5v8AndjsAK/f7wDY8/wA3/L5APf9/wD7/v8AMbLlAD23
6gBNvewAU8XyAHDW/wBy2P8Ae9r/AHXL7ACC2v8AkdbyAJfY8gCc2vIAqOb/AKLb8gDk9fwAAK//AE/A
8wBXxfgAbdP/AGrL9gB0z/kAe9L6AKzm/wDR8f8A5ff/AOz5/wADpPAAB6n2AA+j7gBhyfwAaM7/AHbP
+QB+0/wAhNf/AIbW/gDe9P8AAKb/AHPM/wDc8v8AHab/AACJ/wADa9MAEHreAGCf7wAHZvYAOYb8ABdk
5gA5gP8AAFD/AOzy/wBQgPkAtsz/ABNL6QBMePwAZoz/AB1N/wC9zP8AADP/AAQz8QAFNPIACjn6AAs2
6AAQQP8AFzvWACVK5gAwWf8APmb/AJ+z/wARM8wAM1DUAEVSpQAhLIMAMDqKAE9UkABmZmYAAAAAAAcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHb3n+Bf7+/gcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHhISEhWWWTQX+/v4HBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
hKuxkWaEhIRlaVUi/v7+BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHh54Bf8a4t7WLYoSE
iGlUTf7+/gcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHZomDYLi4uLi4uNGXj4mEhIaKT03+/v4H
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHZmuuzbm5ubm5ubm5ubnGcWtmhISFiml6/v7+BwcHBwcHBwcH
BwcHBwcHBwcHBwcHZrdSAV65pqa5pqa5pqa5pqa5plO1aGKEhIhpev7+/gcHBwcHBwcHBwcHBwcHBwcH
a9SJAWBYWFhYWFhYWFhYWFhYWFhYWFh2cY+JhISIZ1T+BwcHBwcHBwcHBwcHBwcHtdSJryFYWFhYWFhY
WFhYWFhYWFhYWFhYWFhYo1NIZoRp/gcHBwcHBwcHBwcHBwcHmMiLogFeSkpKSkpKSkpKSkpKSkpKSkpK
SkpKSkpKSqOFCAcHBwcHBwcHBwcHBwd8mNORiQFFTExMTExMTExMTExMTExMTExMTExMTExMTNJIT/4H
BwcHBwcHBwcHBwd8mNS1iYLNQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ9JJhgYHBwcHBwcHBwcHBwd8
yNSXj30BRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O9IOkFX+BwcHBwcHBwcHBweJu8i2l4wBKDc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N9IOSYgFBwcHBwcHBwcHBweJu9PExImCKjExMTExMTExMTExMTExMTEx
MTExMTExMdIQEIlN/gcHBwcHBwcHBweJydTFxbSpASwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLNIRKEmK
BAcHBwcHBwcHBweJvtTFxcSQASgsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLNISEhJmCP4HBwcHBwcHBweJ
ytTR0dGJsSoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCdIVFRVWaQQHBwcHBwcHBweJytTS0tKRqyUKCgoK
CgkKCgoKCgoKCgoKCgoKCgoKCtIWFhYohwj+BwcHBwcHBweJytTG0sbFkAEfEA4ODQ4ODg0ODQ4NDg0O
DQ4NDg0ODdIZGRkZoU/+BwcHBwcHBweJRda4uLi4Zn0BAbMfKhoVERAQEBAQEBAQEBAQEBAQENIbGxsb
RYYG/gcHBwcHBweJYLy5ubm5xmaMUqmvggEBAbMhHhYSEhISEhISEhISEtIcKioqKlJU/gcHBwcHBweJ
YHt7e3t7e3ujU5drZoSQUqmvg7MZFRUVFRUVFRUVKdIeHh4eHk6IBf4HBwcHBweJYFpaWlpaWlpaWlpa
WlqjdrVok4OzGxkZGRkZGRkZGdIf5u3mIB+Tev4HBwcHBweJy0JCQkJCQkJCQkJCQkJCQkJCdpCDsx4e
GxsbGxsbG9Ih7e3tISFOigb+BwcHBweJyzY2NjY2NjY2NjY2NjY2NjY2NlOJggEBAbMlISEfK9Ih7e3t
ISGDZggEBwcHBweJYDExMTExMTExMTExMTExMTExMTF2ZomToqmv6u315QEB7e3ts7PN9e38BwcHBweJ
YCwsLCwsLCwsLCwsLCwsLCwsLCwsLCw6SVNx8u3t632p7e3tAeX17e3tBwcHBweJPgkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJ4e3t7eSW7e3tjOvt7e35BwcHBweJNAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCePt7e2HR0dHhO3t7fgHBwcHBweJ5Q8JCQkJCQkJCQkJCUUpDw0JCQkJCQkJCQkJCQnj7cNHR0dH
R0ft+AcHBwcHBweJgrAJCQkJCQkJCQkJEYNgzEbMPi8UKA8KCbrZ2dnZ20dHR0dHR0feTQICAgL+BwcH
ibIPCQkJCQkJCQkNza+GlZWVlZWqToJG6u3t7e3tw0dHNQk1R0dH7e3t7e35/gcHjE4fDw8JCQkJCQkr
sGT+BwcHBweVlZWV5O3t7e3tR0dHJgkmR0dH7e3t7e3w/gcHB4kBs7Ozsx4qFh2zkP4HBwcHBwcHBwcH
B+j06PToz0dHQDpAR0fP+PPy8vL+BwcHBweJhJCTfamuTk6ilf4HBwcHBwcHBwcHBwcHBwcH3kdHR0dH
R0feCP4HBwcHBwcHBwcHBwcHB29vb21v/gcHBwcHBwcHBwcHBwcHBwfx7dxHR0dHR9zt8yL+BwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB/Tt7e3e2NjY3u3t7fEG/gcHBwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHBwcH6O3t7fkH7e3t/gft7e3z/gcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
BwcH8u3t+QcH7e3t/gcH7e3w/gcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB+j0BwcH7e3t
/gcHB/D+BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH7e3t/gcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH8u3t/gcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHB/L+BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcHBwcHB////////wAA////////AAD///////8AAMB//////wAAwAf/////
AADAAH////8AAMAAB////wAAwAAAf///AADAAAAH//8AAMAAAAB//wAAwAAAAB//AADAAAAAD/8AAMAA
AAAP/wAAgAAAAAf/AACAAAAAB/8AAIAAAAAD/wAAgAAAAAP/AACAAAAAAf8AAIAAAAAB/wAAgAAAAAD/
AACAAAAAAP8AAIAAAAAAfwAAgAAAAAB/AACAAAAAAD8AAIAAAAAAPwAAgAAAAAAfAACAAAAAAB8AAIAA
AAAADwAAgAAAAAAPAACAAAAAAA8AAIAAAAAADwAAgAAAAAAPAACAAAAAAB8AAIAAAAAAPwAAgAAAAAAB
AADAAAAAAAAAAMAAfAAAAAAA4AD/4AABAADwAP//AB8AAP+B//4ADwAA/////AAHAAD////4IQcAAP//
//hhhwAA/////OHPAAD/////4f8AAP/////h/wAA//////P/AAD///////8AACgAAAAwAAAAYAAAAAEA
IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATMzMwUuLkYLK0BADCBAQAhAQEAEAACAAgAA
AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3SVaDiz4v9/1f//EqHQ///////F8f//euD//3rg
//964P//euD//3rg//964P//euD//3rg//964P//euD//3rg//964P//euD//3rg//964P//euD//3rg
//964P//Y9P1/03G7P8utN//D6LS/wCZzP8Amcz/A4u6/g9uj/gZUmXsKyklxywoI4spLSlEJDExFQBV
VQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXibeUK35v9+0/3/EaHU/6/f
7//v+///feP//33j//994///feP//33j//994///feP//33j//994///feP//33j//994///feP//33j
//994///feP//33j//994///feP//33j//994///feP//23a+f9WzO//N7ri/xin1v8Amcz/EmeE9i8j
GrgrKSRqJjMtKBw5OQkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIavoES4
5v9yzvn/Iqve/2C/3///////j+n//4Dm//+A5v//gOb//4Dm//+A5v//gOb//4Dm//+A5v//gOb//4Dm
//+A5v//gOb//4Dm//+A5v//gOb//4Dm//+A5v//gOb//4Dm//+A5v//gOb//4Dm//+A5v//gOb//4Dm
//9o1/X/AJbJ/youLNsuJyCRKy4rQis5ORIAAFUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAACIWvoEe55v940Pn/OLXo/xCfz///////ufL//4Pp//+D6f//g+n//4Pp//+D6f//g+n//4Pp
//+D6f//g+n//4Pp//+D6f//g+n//4Pp//+D6f//g+n//4Pp//+D6f//g+n//4Pp//+D6f//g+n//4Pp
//+D6f//g+n//4Pp//9mzP//Ob/f/xdbcfQvIxu0LCokYiY1LSIkJEkHAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAACIWuoUm65v990vr/Pbfq/xOj1v/P7PX/6Pv//4bs//+G7P//huz//4bs
//+G7P//huz//4bs//+G7P//huz//4bs//+G7P//huz//4bs//+G7P//huz//4bs//+G7P//huz//4bs
//+G7P//huz//4bs//+G7P//huz//4bs//9mzP//d+by/wOPvv4sJSDTLSgihygxLTkiMzMPAAAAAgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYOro3HL8v+B1Pv/Q7rt/yqu4f9wxuL//////5jx
//+J7///ie///4nv//+J7///ie///4nv//+J7///ie///4nv//+J7///ie///4nv//+J7///ie///4nv
//+J7///ie///4nv//+J7///ie///4nv//+J7///ie///4nv//9mzP//pv///yqz2f8dT13vLiQcqysr
JVksNTUdMzMzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABom0u3TM8v9xzfj/Sb3w/0S7
7v8gptL//////7f3//+M8v//jPL//4zy//+M8v//jPL//4zy//+M8v//jPL//4zy//+M8v//jPL//4zy
//+M8v//jPL//4zy//+M8v//jPL//4zy//+M8v//jPL//4zy//+M8v//jPL//4zy//9mzP//rP///3bf
7/8GhLD9MCEYyiwoIn8sMSw0K0BADAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI+90njO
8v940Pr/T8H0/0/B9P8Uo9b/z+z1/9z8//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1
//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1
//9mzP//sf///7H///8WptL/IEVP6i8lHqQsLClRKTMzGQBAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAABI+90nvP8v990vv/VcT3/1XE9/8wseT/gMzm//////+a+f//k/n//5P5//+T+f//k/n//5P5
//+T+f//k/n//5P5//+T+f//k/n//5P5//+T+f//k/n//5P5//+T+f//k/n//5P5//+T+f//k/n//5P5
//+T+f//k/n//5P5//9mzP//t////7f///9y2ez/DHWZ+y8iGcMuKSV1KDMtLTMzMwoAAAABAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAABI+90pTZ+f+C1Pz/W8b5/1vG+f9QwPP/MKzW//////+9/f//lvz//5b8
//+W/P//lvz//5b8//+W/P//lvz//5b8//+W/P//lvz//5b8//+W/P//lvz//5b8//+W/P//lvz//5b8
//+W/P//lvz//5b8//+W/P//lvz//5b8//9mzP//vv///77///++////GKbS/yc1OOMuJh+bKS0pSiMu
LhYAQEAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY67063k//990/3/YMn8/2DJ/P9gyfz/EqLV/9/y
+f/Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n/
//+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///9mzP//xP///8T////E////Yszm/xJp
hfgvIhq8LCojbSwyMikcOTkJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAZfI9LHl//950v//Zsz//2bM
//9mzP//Obbp/4/S6f/5////nv///57///+e////nv///57///+e////nv///57///+e////nv///57/
//+e////nv///57///+e////nv///57///+e////nv///57///+e////nv///57///9mzP//yf///8n/
///J////vfn8/w2czP8qLSzcLSYflCktKUQoNjYTAFVVAwAAAAAAAAAAAAAAAAAAAAAAAAAAAJnM/7bn
//981f//ac///2nP//9pz///VcX1/zCs1v//////6P///7H///+n////p////6f///+n////p////6f/
//+n////p////6f///+n////p////6f///+n////p////6f///+n////p////6f///+n////p////6f/
//9mzP//z////8/////P////z////1vG4v8VX3j2LiMbtispJGQkMzMjJElJBwAAAAAAAAAAAAAAAAAA
AAAAAAAAAJnM/7vp//+C2v//b9X//2/V//9v1f//b9X//xyo2f9wxuL////////////6////6v///9v/
///R////w////7X///+x////sf///7H///+x////sf///7H///+x////sf///7H///+x////sf///7H/
//+x////sf///7H///9mzP//1v///9b////W////1v///7vy+f8Dj77+LCUh1S4nIYorLys8IDAwEAAA
AAIAAAAAAAAAAAAAAAAAAAAAMK3Z/8Dq//+H3v//dNr//3Ta//902v//dNr//23W/P8dqtn/IKbS/1C5
3P+AzOb/r9/v/8/s9f/////////////////6////7f///+D////I////vP///7z///+8////vP///7z/
//+8////vP///7z///+8////vP///7z///9mzP//3P///9z////c////3P///9z///9Tv9//GlRm8S8j
HK4qKidcKTExHysrKwYAAAAAAAAAAAAAAAAAmcwQMa7Z/8Ts//953///ed///3nf//953///ed///3nf
//953///cdv8/1zO8v9Fwen/Nbji/x+r2f8Amcz/MKzW/1C53P+AzOb/r9/v/+/5/P/7////z////8X/
///F////xf///8X////F////xf///8X////F////xf///8X///9mzP//4v///+L////i////4v///+L/
//+37PX/BoSw/TAhGMwtKSODKi4uNyQ3Nw4AAAACAAAAAAAAAAAAmcxAMq7Z/8nt//9/5f//f+X//3/l
//9/5f//f+X//3/l//9/5f//f+X//3/l//9/5f//f+X//3/l//9/5f//b9z5/2DT8v9AwOb/KLHc/zix
2f/v+fz//P///9f////P////z////8/////P////z////8/////P////z////8////9mzP//6P///1eA
//8AM///V4D//+j////o////OrPZ/x1JV+4tJB6pKygoWSYtNSIcHDkJAAAAAgAAAAAAmcxAM67Z/83v
//+F6///hev//4Xr//+F6///hev//4Xr//+F6///hev//4Xr//+F6///hev//4Xr//+F6///hev//4Xr
//+F6///hev//2TX8v8wrNb/7/n8//z////j////3////9j////Y////2P///9j////Y////2P///9j/
//9mzP//7v///wAz//8AM///ADP//+7////u////s+by/wx1mfswHxjMLiMfiiojLUknHTsaKysrBgAA
AAEAmcxAQrTc/9Lw//+K8P//ivD//4rw//+K8P//ivD//4rw//+K8P//ivD//4rw//+K8P//ivD//4rw
//+K8P//ivD//4rw//+K8P//ivD//4rw//9Wz+z/EJ/P/8/s9f/////////////////6////9v////H/
///v////6P///+b///9mzP//9P///wAz//8AM///ADP///T////0////9P///x+m0v8kNz7vMB4avi0f
JXwsHSw0KxUrDAAAAAEAmcxAa8Xm/8ny//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1
//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//j/X//4/1//+P9f//Ytjv/xuq1v8Qn8//QLPZ/2C/
3/+AzOb/r9/v/2CG/P8AM///MFn//+/y/////////v///wAz//8AM///ADP///v////7////6/L//y9g
/P8AM///Eymk7S8dIZQsHChAIiIzDwAAAAIAmcxgbsbm/8r1//+V+///lfv//5X7//+V+///lfv//5X7
//+V+///lfv//5X7//+V+///lfv//5X7//+V+///lfv//5X7//+V+///lfv//5X7//+V+///lfv//5X7
//+V+///g+/5/3Dj8v9V0en/S8vm/wpA//8AM///ADP//yBT/P9wv+b/gMzm/wAz//8AM///ADP/////
///v8v//MFn//wAz//8AM///ADP//y0dJ4IrHC82JxQ7DQAAgAIAmcyAcMfm/873//+Z////mf///5n/
//+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n/
//+Z////mf///5n///+Z////mf///5n///+Z////mf///0OM//8AM///ADP//wAz//8ARvX/Flx+/gAz
//8AM///ADP//yCf1v8gU/z/ADP//wAz//8AM///Dyy51SofNVsoG0MmJydODQAAQAQAmcyAcsfm/9b4
//+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n/
//+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///85gP//ADP//wAz
//8APf//Bo/h/wDM//8AzP//AMz//waP4f8APf//ADP//wAz//8OLLznKx83gykfQlEnHUo0JB1JIygb
URMAmcxgV7zf/+j4//+t/f//mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n/
//+3/P//wfz//639//+j/v//mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////mf///5n/
//+Z////OYD//wA9//8Ar///AMz//wDM//8AzP//AMz//wDM//8Awv//AD3//xErr/YtHifCKx8wmysd
M4MsHzJ1Kx0yYCodOz0AAAAAAZXG59Dt+f/Z+///mf///5n///+Z////mf///5n///+Z////mf///5n/
//+Z////mf///7T9///u+f//wef1/+75///u+f//7vn//976///T+///xPz//7n9//+u/v//nv///5n/
//982f//c8z//3PM//9zzP//c8z//xOs//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//Bo/h/yUj
UvUjI1rnISNg3CEjYtYjIVTMLx0kqSwdLnQAAAAAB4iyc0y43P/y+///r/7//5n///+Z////mf///5n/
//+Z////mf///5n///+Z////pP///+z7//+m3O//BY679gaJtN4Rncv1PbLZ/0y43P95yub/iNDp/7bj
8v/U7/n/8vv//2qL//8AM///ADP//wAz//8AM///ADP//wC5//8AzP//AMz//1bp//+Z////Vun//wDM
//8AzP//AML//wAz//8AM///ADP//wAz//8AM///ESqt5C0cK4gAAAAAAAAAAAGWx+a54/L/5f3//7D+
//+w/v//mf///5n///+Z////mf///5n///+Z////5f3//9fw+f8VlL73KDU2hi0tLT4rKyseLCEhFw94
mEYNeZxcB4m1mAaKtakDkb/QApTF6QBN8v8AM///ADP//wAz//8AM///ADP//wDM//8AzP//AMz//4/8
//+Z////j/z//wDM//8AzP//AMz//wAz//8AM///ADP//wAz//8AM///AjL4+CseNWYAAAAAAAAAAAaL
tXE/stn/+/7///v+///7/v//+/7///v+///j/v//3P7//8r////c/v//+/7//y+s1v8cUmGtLC8sTCcx
OxokJCQHAAAAA0BAQAQkSUkHLkZGCyQ3SQ4tPDwRJDExFQcx3XQDMvLMAzHu0AQx7dIEMenWBjDi3gKx
9voAzP//AMz//zDc//9z8v//Od///wDM//8AzP//A7jx/gsuzPYIL9fqBjDi3gQx6dYEMe3SDS3DiSgc
Pi0=
</value>
</data>
</root>

View File

@@ -0,0 +1,567 @@
Imports System.IO
Imports System.Windows.Forms
' Folder Select
' An VB.NET RC1 Windows Application converted from
' An C#.NET beta 2 example on how to build a folder browser dialog window
' The Code Project - Folder Select Dialog By Chris Warner
' http://www.codeproject.com/csharp/folderseldlg.asp
'
' Created & improved by Goh Mingkun
' mangokun@hotmail.com
' Saturday, February 02, 2002
'
' Add this Windows Form(folderSelect.vb) and
' its Resource file(folderSelect.resx) to your project,
' then follow the method below to use it.
'
' <Usage>
'
' Dim dlg As FolderSelect = New FolderSelect()
'
' ' Directory Tree display options
' dlg.InitialDirectory = "C:\Program Files" ' set the initial directory to be selected
' dlg.InitialDirectoryExpanded = True ' expand the selected directory
' dlg.ShowHiddenDirectory = True ' display hidden directories
' dlg.ShowSystemDirectory = True ' display system directories
'
' If dlg.ShowDialog() = DialogResult.OK Then
' txtSelectedFolder.Text = dlg.fullPath ' retrieve the selected folder
'
' Dim info As DirectoryInfo = dlg.info ' retrieve the selected folder's info
' ' extract the directory info.
' Dim strArray(4) As String
'
' strArray(0) = "Folder Name : " + dlg.foldername
' strArray(1) = "Full Path : " + info.FullName
' strArray(2) = "Creation Time : " + info.CreationTime.ToString()
' strArray(3) = "Last Access Time : " + info.LastAccessTime.ToString()
' strArray(4) = "Last Write Time : " + info.LastWriteTime.ToString()
'
' txtInfo.Lines = strArray
' End If
'
' </Usage>
Public Class FolderSelect
Inherits System.Windows.Forms.Form
Private driveLetters As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Private folder As DirectoryInfo
Private SelectedNodeAlreadyExpanded As Boolean
Private SelectedNodeAlreadyCollapsed As Boolean
' This method is used to initially fill the treeView control with a list
' of available drives from which you can search for the desired folder.
Private Sub fillTree()
Dim directory As DirectoryInfo
Dim sCurPath As String = ""
' clear out the old values
TreeView1.Nodes.Clear()
Dim c As Char
' loop through the drive letters and find the available drives.
For Each c In driveLetters
sCurPath = c + ":\"
Try
' get the directory informaiton for this path.
directory = New DirectoryInfo(sCurPath)
' if the retrieved directory information points to a valid
' directory or drive in this case, add it to the root of the
' treeView.
If directory.Exists Then
'MsgBox(sCurPath & " directory.Exists")
Dim newNode As TreeNode = New TreeNode(directory.FullName)
TreeView1.Nodes.Add(newNode) ' add the new node to the root level.
' NEW TEEEEEEST
If sInitialDirectory = sCurPath Then
' NEW TEEEEEEST
getSubDirs(newNode) ' scan for any sub folders on this drive.
' NEW TEEEEEEST
End If
' NEW TEEEEEEST
End If
Catch doh As Exception
Console.WriteLine(doh.Message)
End Try
Next
End Sub
' method getSubDirs
' this function will scan the specified parent for any subfolders
' if they exist. To minimize the memory usage, we only scan a single
' folder level down from the existing, and only if it is needed.
' the parent folder in which to search for sub-folders.
Private Sub getSubDirs(ByVal parent As TreeNode)
Dim directory As DirectoryInfo
Try
' if we have not scanned this folder before
If parent.Nodes.Count = 0 Then
directory = New DirectoryInfo(parent.FullPath)
Dim dir As DirectoryInfo
Dim IsHidden, IsSystem As Boolean
Dim Skip As Boolean
For Each dir In directory.GetDirectories()
' Determine whether to show directory
IsHidden = False
IsSystem = False
Skip = False
'MsgBox(dir.FullName)
If (GetAttr(dir.FullName) And FileAttribute.Hidden) = FileAttributes.Hidden Then
'MsgBox(dir.FullName & " is a hidden directory")
IsHidden = True
Skip = True
End If
If (GetAttr(dir.FullName) And FileAttribute.System) = FileAttributes.System Then
'MsgBox(dir.FullName & " is a system directory")
IsSystem = True
Skip = True
End If
If IsHidden And bShowHiddenDirectory Then
Skip = False
End If
If IsSystem And bShowSystemDirectory Then
Skip = False
End If
If Not Skip Then
Dim newNode As TreeNode = New TreeNode(dir.Name)
parent.Nodes.Add(newNode)
End If
Next
End If
' now that we have the children of the parent, see if they
' have any child members that need to be scanned. Scanning
' the first level of sub folders insures that you properly
' see the '+' or '-' expanding controls on each node that represents
' a sub folder with it's own children.
Dim node As TreeNode
For Each node In parent.Nodes
'MsgBox(node.Text & " has " & node.Nodes.Count)
' if we have not scanned this node before.
If node.Nodes.Count = 0 Then
' get the folder information for the specified path.
directory = New DirectoryInfo(node.FullPath)
' check this folder for any possible sub-folders
Dim dir As DirectoryInfo
Try
For Each dir In directory.GetDirectories()
' make a new TreeNode and add it to the treeView.
Dim newNode As TreeNode = New TreeNode(dir.Name)
node.Nodes.Add(newNode)
Next
Catch
End Try
End If
Next
Catch doh As Exception
Console.WriteLine(doh.Message)
End Try
End Sub
' method fixPath
' For some reason, the treeView will only work with paths constructed like the following example.
' "c:\\Program Files\Microsoft\...". What this method does is strip the leading "\\" next to the drive
' letter.
' the folder that needs it's path fixed for display.
' The correctly formatted full path to the selected folder.
Private Function fixPath(ByVal node As TreeNode) As String
Dim sRet As String = ""
Try
sRet = node.FullPath
Dim index As Integer = sRet.IndexOf("\\")
If index > 1 Then
sRet = node.FullPath.Remove(index, 1)
End If
Catch doh As Exception
Console.WriteLine(doh.Message)
End Try
Return sRet
End Function
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
' initialize the treeView
'fillTree()
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents Panel2 As System.Windows.Forms.Panel
Friend WithEvents Panel3 As System.Windows.Forms.Panel
Friend WithEvents TreeView1 As System.Windows.Forms.TreeView
Friend WithEvents ImageList1 As System.Windows.Forms.ImageList
Friend WithEvents btnSelect As System.Windows.Forms.Button
Friend WithEvents btnCancel As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(FolderSelect))
Me.Panel2 = New System.Windows.Forms.Panel()
Me.btnSelect = New System.Windows.Forms.Button()
Me.btnCancel = New System.Windows.Forms.Button()
Me.Panel3 = New System.Windows.Forms.Panel()
Me.TreeView1 = New System.Windows.Forms.TreeView()
Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)
Me.Panel2.SuspendLayout()
Me.Panel3.SuspendLayout()
Me.SuspendLayout()
'
'Panel2
'
Me.Panel2.AutoScroll = True
Me.Panel2.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnSelect, Me.btnCancel})
Me.Panel2.Dock = System.Windows.Forms.DockStyle.Bottom
Me.Panel2.DockPadding.All = 10
Me.Panel2.Location = New System.Drawing.Point(6, 222)
Me.Panel2.Name = "Panel2"
Me.Panel2.Size = New System.Drawing.Size(280, 45)
Me.Panel2.TabIndex = 1
'
'btnSelect
'
Me.btnSelect.DialogResult = System.Windows.Forms.DialogResult.OK
Me.btnSelect.Dock = System.Windows.Forms.DockStyle.Left
Me.btnSelect.Location = New System.Drawing.Point(10, 10)
Me.btnSelect.Name = "btnSelect"
Me.btnSelect.Size = New System.Drawing.Size(75, 25)
Me.btnSelect.TabIndex = 1
Me.btnSelect.Text = "&OK"
'
'btnCancel
'
Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.btnCancel.Dock = System.Windows.Forms.DockStyle.Right
Me.btnCancel.Location = New System.Drawing.Point(198, 10)
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(72, 25)
Me.btnCancel.TabIndex = 2
Me.btnCancel.Text = "&Cancel"
'
'Panel3
'
Me.Panel3.Anchor = (((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right)
Me.Panel3.Controls.AddRange(New System.Windows.Forms.Control() {Me.TreeView1})
Me.Panel3.DockPadding.All = 10
Me.Panel3.Location = New System.Drawing.Point(6, 0)
Me.Panel3.Name = "Panel3"
Me.Panel3.Size = New System.Drawing.Size(280, 224)
Me.Panel3.TabIndex = 5
'
'TreeView1
'
Me.TreeView1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TreeView1.ImageList = Me.ImageList1
Me.TreeView1.ImeMode = System.Windows.Forms.ImeMode.NoControl
Me.TreeView1.Location = New System.Drawing.Point(10, 10)
Me.TreeView1.Name = "TreeView1"
Me.TreeView1.Size = New System.Drawing.Size(260, 204)
Me.TreeView1.TabIndex = 0
'
'ImageList1
'
Me.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit
Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16)
Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer)
Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent
'
'FolderSelect
'
Me.AcceptButton = Me.btnSelect
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.CancelButton = Me.btnCancel
Me.ClientSize = New System.Drawing.Size(292, 273)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Panel3, Me.Panel2})
Me.DockPadding.All = 6
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.MinimumSize = New System.Drawing.Size(230, 300)
Me.Name = "FolderSelect"
Me.ShowInTaskbar = False
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "Verzeichnis auswählen"
Me.Panel2.ResumeLayout(False)
Me.Panel3.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
' method treeView1_BeforeSelect
' Before we select a tree node we want to make sure that we scan the soon to be selected
' tree node for any sub-folders. this insures proper tree construction on the fly.
' The object that invoked this event
' The TreeViewCancelEventArgs event arguments.
Private Sub TreeView1_BeforeSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeSelect
getSubDirs(e.Node) ' get the sub-folders for the selected node.
' TextBox1.Text = fixPath(e.Node) ' update the user selection text box.
folder = New DirectoryInfo(e.Node.FullPath) ' get it's Directory info.
' change the image of the selected node to a selected folder icon
If e.Node.IsExpanded Then
e.Node.ImageIndex = 1
e.Node.SelectedImageIndex = 3
Else
e.Node.ImageIndex = 0
e.Node.SelectedImageIndex = 2
End If
End Sub
' method treeView1_BeforeExpand
' Before we expand a tree node we want to make sure that we scan the soon to be expanded
' tree node for any sub-folders. this insures proper tree construction on the fly.
' The object that invoked this event
' The TreeViewCancelEventArgs event arguments.
Private Sub TreeView1_BeforeExpand(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeExpand
If e.Node Is TreeView1.SelectedNode Then
If SelectedNodeAlreadyCollapsed Then
e.Cancel = True
Exit Sub
End If
End If
getSubDirs(e.Node) ' get the sub-folders for the selected node.
'TextBox1.Text = fixPath(e.Node) ' update the user selection text box.
'folder = New DirectoryInfo(e.Node.FullPath) ' get it's Directory info.
' change the image of the expanded node to an opened folder icon
e.Node.ImageIndex = 1
e.Node.SelectedImageIndex = 3
End Sub
Private Sub TreeView1_BeforeCollapse(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeCollapse
If e.Node Is TreeView1.SelectedNode Then
If SelectedNodeAlreadyExpanded Then
e.Cancel = True
Exit Sub
End If
End If
' change the image of the collapsed node back to a closed folder icon
e.Node.ImageIndex = 0
e.Node.SelectedImageIndex = 2
End Sub
' method cancelBtn_Click
' This method cancels the folder browsing.
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
folder = Nothing
Me.Close()
End Sub
' method selectBtn_Click
' This method accepts which ever folder is selected and closes this application
' with a DialogResult.OK result if you invoke this form though Form.ShowDialog().
Private Sub btnSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelect.Click
Me.Close()
End Sub
Private Sub FolderSelect_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
' initialize the treeView
fillTree()
Me.Activate()
TreeView1.Select()
If sInitialDirectory <> "" Then
TreeView1.SelectedNode = GetInitialNode()
End If
If bInitialDirectoryExpanded Then
TreeView1.SelectedNode.Expand()
End If
Catch doh As Exception
Console.WriteLine(doh.Message)
End Try
End Sub
Private Function GetInitialNode() As TreeNode
Dim path As String = sInitialDirectory
If Not path.EndsWith("\") Then
path += "\"
End If
Dim node, subnode As TreeNode
Dim index As Integer
Dim label As String
' Get the drive
index = path.IndexOf("\")
label = path.Substring(0, index + 1)
' Search the nodes for the drive
For Each node In TreeView1.Nodes
If node.Text.ToLower = label.ToLower Then
path = path.Remove(0, index + 1)
Do While path <> ""
node.Expand()
'MsgBox(path)
index = path.IndexOf("\")
label = path.Substring(0, index)
'MsgBox(label)
' Search the nodes for the sub-directory
For Each subnode In node.Nodes
If subnode.Text.ToLower = label.ToLower Then
node = subnode
Exit For
End If
Next
path = path.Remove(0, index + 1)
Loop
Exit For
End If
Next
Return node
End Function
' handle key events
Private Sub FolderSelect_KeyDown(ByVal sender As System.Object, ByVal e As KeyEventArgs) Handles MyBase.KeyDown
'MsgBox(e.KeyCode)
Select Case e.KeyCode
Case Keys.Add
'MsgBox("Add")
SelectedNodeAlreadyExpanded = TreeView1.SelectedNode.IsExpanded
SelectedNodeAlreadyCollapsed = False
Case Keys.KeyCode.Subtract
'MsgBox("Subtract")
SelectedNodeAlreadyExpanded = False
SelectedNodeAlreadyCollapsed = Not TreeView1.SelectedNode.IsExpanded
Case Keys.Left
SelectedNodeAlreadyExpanded = False
End Select
End Sub
' method foldername
' A method to retrieve the name for the selected folder,
' without the full path.
' This method will return empty string
' when root of drive is selected
Public ReadOnly Property foldername() As String
Get
If Not IsNothing(folder) And folder.Exists Then
Dim FullPath As String = fixPath(TreeView1.SelectedNode)
Dim index As Integer = FullPath.LastIndexOf("\")
Return FullPath.Substring(index + 1)
Else
Return Nothing
End If
End Get
End Property
' method fullPath
' Retrieve the full path for the selected folder.
' The correctly formatted full path to the selected folder.
Public ReadOnly Property fullPath() As String
Get
If Not IsNothing(folder) And folder.Exists And Not IsNothing(TreeView1.SelectedNode) Then
Return fixPath(TreeView1.SelectedNode)
Else
Return Nothing
End If
End Get
End Property
' method info
' Retrieve the full DirectoryInfo object associated with the selected folder.
' Note that this will not have the corrected full path string.
' The full DirectoryInfo object associated with the selected folder.
Public ReadOnly Property info() As DirectoryInfo
Get
If Not IsNothing(folder) And folder.Exists Then
Return folder
Else
Return Nothing
End If
End Get
End Property
' Property InitialDirectory
' Set InitialDirectory to be selected and visible
Private sInitialDirectory As String
Public Property InitialDirectory() As String
Get
Return sInitialDirectory
End Get
Set(ByVal Value As String)
If Directory.Exists(Value) Then
sInitialDirectory = Value.Trim
End If
End Set
End Property
' Property InitialDirectory
' Determine whether InitialDirectory is to be expanded when displayed
Private bInitialDirectoryExpanded As Boolean
Public Property InitialDirectoryExpanded() As Boolean
Get
Return bInitialDirectoryExpanded
End Get
Set(ByVal Value As Boolean)
bInitialDirectoryExpanded = Value
End Set
End Property
' Property ShowHiddenDirectory
' Determine whether hidden directories are displayed
Private bShowHiddenDirectory As Boolean
Public Property ShowHiddenDirectory() As Boolean
Get
Return bShowHiddenDirectory
End Get
Set(ByVal Value As Boolean)
bShowHiddenDirectory = Value
End Set
End Property
' Property ShowSystemDirectory
' Determine whether system directories are displayed
Private bShowSystemDirectory As Boolean
Public Property ShowSystemDirectory() As Boolean
Get
Return bShowSystemDirectory
End Get
Set(ByVal Value As Boolean)
bShowSystemDirectory = Value
End Set
End Property
End Class