Checksum Checking Updater Source

Results 1 to 9 of 9
  1. #1
    MUonline AntiLag Creator *HK* is offline
    MemberRank
    May 2006 Join Date
    norwayLocation
    371Posts

    Checksum Checking Updater Source

    It was generaly created for LAN networks but it works for WAN networks by using the update website url as the local ip address in the update manager.
    The whole updater is open source and under the GPL General Public Licence.

    People are welcome to continue develop it as they wish as long the source is kept open.

    Anyway enough about that.
    -------------------------------------
    The update manager is pretty simple
    here is a ss of its interface with some example values.
    All info in the files it creates are encrypted.



    it says local ip but if you enter the website address it should still work.

    The updater just shows a window that indicates the update process and checks if the files are up to date by checking the checksum in the file containing the file info.

    sources and the program can be downloaded from
    https://sourceforge.net/projects/pau/files/

    i hope you people will enjoy this source release
    the sources are fully commented so it should be easy to understand what the different codes do

    in the xml sources the codelines are in the <SourceLine> areas
    however the control names are not stored there, those you must find self :/
    Last edited by *HK*; 26-08-09 at 12:07 PM.


  2. #2
    Hybrid Gembrid is offline
    MemberRank
    Mar 2006 Join Date
    1,121Posts

    Re: [Release]Checksum Checking Updater Source

    Approved.

  3. #3
    Live your Life Stifi is offline
    MemberRank
    Nov 2007 Join Date
    BulgariaLocation
    452Posts

    Re: [Release]Checksum Checking Updater Source

    i like it, but if have little info about the file be great :}

  4. #4
    MUonline AntiLag Creator *HK* is offline
    MemberRank
    May 2006 Join Date
    norwayLocation
    371Posts

    Re: [Release]Checksum Checking Updater Source

    Quote Originally Posted by Stifi View Post
    i like it, but if have little info about the file be great :}
    ye i am abit bad on describing lol
    anyway i just uploaded v1.1 and added both RBP and XML sources for it

    RBP source needs realbasic to be viewed

    XML source can be read and viewed in notepad or any XML or text editor(no visual of the app tho)

    the reason i added the xml source is so that people that use other program languages can read the code and maybe create or recode something simlar in their program language

    update manager XML source
    PHP Code:
    <?xml version="1.0"?>
    <RBProject version="2008r4.2">
    <block type="Project" ID="0">
     <ProjectSavedInVers>2008.042</ProjectSavedInVers>
     <ProjMgrUser></ProjMgrUser>
     <ProjMgrServer></ProjMgrServer>
     <MajorVersion>1</MajorVersion>
     <MinorVersion>0</MinorVersion>
     <SubVersion>0</SubVersion>
     <Release>0</Release>
     <NonRelease>0</NonRelease>
     <Region></Region>
     <ShortVersion></ShortVersion>
     <LongVersion></LongVersion>
     <InfoVersion></InfoVersion>
     <AutoIncVersion>0</AutoIncVersion>
     <DefaultViewID>1544916991</DefaultViewID>
     <ProjectType>0</ProjectType>
     <DefaultLanguage>0</DefaultLanguage>
     <CurrentLanguage>0</CurrentLanguage>
     <DefaultEncoding>0</DefaultEncoding>
     <BuildFlags>16</BuildFlags>
     <Icon>
     </Icon>
     <MacCreator></MacCreator>
     <BuildCarbonName>My Application</BuildCarbonName>
     <BuildCarbonMachOName>My Application</BuildCarbonMachOName>
     <BundleIdentifier></BundleIdentifier>
     <BuildSize>4194304</BuildSize>
     <BuildMinSize>2097152</BuildMinSize>
     <BuildSizeAsString>4096</BuildSizeAsString>
     <BuildMinSizeAsString>2048</BuildMinSizeAsString>
     <WinMDICaption></WinMDICaption>
     <BuildWinName>Update Manager.exe</BuildWinName>
     <BuildWinMDI>0</BuildWinMDI>
     <BuildWinCompanyName></BuildWinCompanyName>
     <BuildWinProductName></BuildWinProductName>
     <BuildWinInternalName></BuildWinInternalName>
     <BuildLinuxX86Name>MyApplication</BuildLinuxX86Name>
     <DebuggerCommandLine></DebuggerCommandLine>
    </block>
    <block type="Module" ID="1653768191">
     <ObjName>App</ObjName>
     <ObjContainerID>0</ObjContainerID>
     <IsClass>1</IsClass>
     <Superclass>Application</Superclass>
     <ItemFlags>1</ItemFlags>
     <IsInterface>0</IsInterface>
     <IsApplicationObject>1</IsApplicationObject>
     <Compatibility></Compatibility>
     <PropertyVal Name="MenuBar">1456977919</PropertyVal>
     <ViewBehavior>
     </ViewBehavior>
     <Constant>
      <ItemName>kFileQuitShortcut</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <TextEncoding>134217984</TextEncoding>
      <ItemName>kFileQuitShortcut</ItemName>
      <ItemType>0</ItemType>
      <ItemDef></ItemDef>
      <ItemFlags>0</ItemFlags>
      <ConstantInstance>
       <ItemPlatform>1</ItemPlatform>
       <ItemLanguage>0</ItemLanguage>
       <ItemDef>Cmd+Q</ItemDef>
      </ConstantInstance>
      <ConstantInstance>
       <ItemPlatform>5</ItemPlatform>
       <ItemLanguage>0</ItemLanguage>
       <ItemDef>Ctrl+Q</ItemDef>
      </ConstantInstance>
     </Constant>
     <Constant>
      <ItemName>kFileQuit</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <TextEncoding>134217984</TextEncoding>
      <ItemName>kFileQuit</ItemName>
      <ItemType>0</ItemType>
      <ItemDef>&amp;Quit</ItemDef>
      <ItemFlags>0</ItemFlags>
      <ConstantInstance>
       <ItemPlatform>2</ItemPlatform>
       <ItemLanguage>0</ItemLanguage>
       <ItemDef>E&amp;xit</ItemDef>
      </ConstantInstance>
     </Constant>
     <Constant>
      <ItemName>kEditClear</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <TextEncoding>134217984</TextEncoding>
      <ItemName>kEditClear</ItemName>
      <ItemType>0</ItemType>
      <ItemDef>&amp;Delete</ItemDef>
      <ItemFlags>0</ItemFlags>
      <ConstantInstance>
       <ItemPlatform>2</ItemPlatform>
       <ItemLanguage>0</ItemLanguage>
       <ItemDef>&amp;Delete</ItemDef>
      </ConstantInstance>
      <ConstantInstance>
       <ItemPlatform>5</ItemPlatform>
       <ItemLanguage>0</ItemLanguage>
       <ItemDef>&amp;Delete</ItemDef>
      </ConstantInstance>
     </Constant>
    </block>
    <block type="Window" ID="1544916991">
     <ObjName>Window1</ObjName>
     <ObjContainerID>0</ObjContainerID>
     <IsClass>1</IsClass>
     <Superclass>Window</Superclass>
     <ItemFlags>1</ItemFlags>
     <IsInterface>0</IsInterface>
     <Compatibility></Compatibility>
     <PropertyVal Name="ImplicitInstance">True</PropertyVal>
     <PropertyVal Name="MenuBar">1456977919</PropertyVal>
     <PropertyVal Name="MacProcID">0</PropertyVal>
     <PropertyVal Name="MinimizeButton">False</PropertyVal>
     <PropertyVal Name="MaximizeButton">False</PropertyVal>
     <PropertyVal Name="LiveResize">True</PropertyVal>
     <PropertyVal Name="Resizeable">False</PropertyVal>
     <PropertyVal Name="CloseButton">True</PropertyVal>
     <PropertyVal Name="MenuBarVisible">True</PropertyVal>
     <PropertyVal Name="FullScreen">False</PropertyVal>
     <PropertyVal Name="Visible">True</PropertyVal>
     <PropertyVal Name="Title"> Update manager</PropertyVal>
     <PropertyVal Name="Backdrop"></PropertyVal>
     <PropertyVal Name="BackColor">16777215</PropertyVal>
     <PropertyVal Name="HasBackColor">False</PropertyVal>
     <PropertyVal Name="Composite">False</PropertyVal>
     <PropertyVal Name="Frame">0</PropertyVal>
     <PropertyVal Name="MaxHeight">32000</PropertyVal>
     <PropertyVal Name="MaxWidth">32000</PropertyVal>
     <PropertyVal Name="MinHeight">64</PropertyVal>
     <PropertyVal Name="MinWidth">64</PropertyVal>
     <PropertyVal Name="Height">514</PropertyVal>
     <PropertyVal Name="Width">611</PropertyVal>
     <PropertyVal Name="Placement">2</PropertyVal>
     <ViewBehavior>
      <ViewProperty>
       <ObjName>Name</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Interfaces</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Super</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Placement</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>0</PropertyValue>
       <ItemType>Integer</ItemType>
       <EditorType>Enum</EditorType>
       <InheritsFrom>Window</InheritsFrom>
       <Enumeration>
        <ItemDef>0 - Default</ItemDef>
        <ItemDef>1 - Parent Window</ItemDef>
        <ItemDef>2 - Main Screen</ItemDef>
        <ItemDef>3 - Parent Window Screen</ItemDef>
        <ItemDef>4 - Stagger</ItemDef>
       </Enumeration>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Width</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>300</PropertyValue>
       <ItemType>Integer</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Height</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>300</PropertyValue>
       <ItemType>Integer</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MinWidth</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>64</PropertyValue>
       <ItemType>Integer</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MinHeight</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>64</PropertyValue>
       <ItemType>Integer</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MaxWidth</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>32000</PropertyValue>
       <ItemType>Integer</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MaxHeight</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>32000</PropertyValue>
       <ItemType>Integer</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Frame</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>0</PropertyValue>
       <ItemType>Integer</ItemType>
       <EditorType>Enum</EditorType>
       <InheritsFrom>Window</InheritsFrom>
       <Enumeration>
        <ItemDef>0 - Document</ItemDef>
        <ItemDef>1 - Movable Modal</ItemDef>
        <ItemDef>2 - Modal Dialog</ItemDef>
        <ItemDef>3 - Floating Window</ItemDef>
        <ItemDef>4 - Plain Box</ItemDef>
        <ItemDef>5 - Shadowed Box</ItemDef>
        <ItemDef>6 - Rounded Window</ItemDef>
        <ItemDef>7 - Global Floating Window</ItemDef>
        <ItemDef>8 - Sheet Window</ItemDef>
        <ItemDef>9 - Metal Window</ItemDef>
        <ItemDef>10 - Drawer Window</ItemDef>
        <ItemDef>11 - Modeless Dialog</ItemDef>
       </Enumeration>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Composite</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>False</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>HasBackColor</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>False</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>BackColor</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>&amp;hFFFFFF</PropertyValue>
       <ItemType>Color</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Backdrop</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <ItemType>Picture</ItemType>
       <EditorType>Picture</EditorType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Title</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>Untitled</PropertyValue>
       <ItemType>String</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Visible</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>True</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>FullScreen</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>False</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MenuBarVisible</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>True</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>CloseButton</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>True</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Resizeable</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>False</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>LiveResize</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>True</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MaximizeButton</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>False</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MinimizeButton</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>True</PropertyValue>
       <ItemType>Boolean</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MacProcID</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>0</PropertyValue>
       <ItemType>Integer</ItemType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>MenuBar</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <ItemType>MenuBar</ItemType>
       <EditorType>MenuBar</EditorType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>ImplicitInstance</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Appearance</PropertyGroup>
       <PropertyValue>True</PropertyValue>
       <EditorType>Boolean</EditorType>
       <InheritsFrom>Window</InheritsFrom>
      </ViewProperty>
     </ViewBehavior>
     <ControlBehavior>
      <Superclass>StaticText</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>StaticText</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
      <HookInstance>
       <ItemName>TextChange</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub TextChange()</SourceLine>
        <SourceLine>fileamount.text = str(countfields(filelist.text, chr(13)))</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>StaticText</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>StaticText</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>Separator</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
      <HookInstance>
       <ItemName>KeyDown</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Function KeyDown(Key As String) As Boolean</SourceLine>
        <SourceLine>diramount.text = str(countfields(dirlist.text, chr(13)))</SourceLine>
        <SourceLine>End Function</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>StaticText</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>StaticText</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>PushButton</Superclass>
      <HookInstance>
       <ItemName>Action</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub Action()</SourceLine>
        <SourceLine>'//makes variables for folderitem and string</SourceLine>
        <SourceLine>dim f as folderitem</SourceLine>
        <SourceLine>dim s as string</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//a small trick to make the message only appear once instead of every time the person shall open a file</SourceLine>
        <SourceLine>if pushbutton1.helptag = "1" then</SourceLine>
        <SourceLine>'//gives a warning that the person must get the correct file since the manager is using a linecounter to get the correct data for the files</SourceLine>
        <SourceLine>msgbox "Please make sure you select the correct file to get the" + endofline + "MD5 checksum. This manager is LINE sensetive!"</SourceLine>
        <SourceLine>'//canges the helptag so the warning wont come on the next files(resets to 1 next time the app is run)</SourceLine>
        <SourceLine>pushbutton1.helptag = "0"</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine>'//gives a opendialog without any filters</SourceLine>
        <SourceLine>f = getopenfolderitem("")</SourceLine>
        <SourceLine>'//runs getmd5hash method from crc module and returns result to s</SourceLine>
        <SourceLine>s = crc.getmd5hash(f)</SourceLine>
        <SourceLine>'//appends the md5 to the md5 list</SourceLine>
        <SourceLine>md5sums.appendtext(s) + endofline</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>PushButton</Superclass>
      <HookInstance>
       <ItemName>Action</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub Action()</SourceLine>
        <SourceLine>'//enters the ip address and updatedata filename into sysupdt.ini, both encoded with base64</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "1", encodebase64(ip.text))</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "2", encodebase64(inifile.text))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//checks and adds value to tell if the updater is a part of the startup or not (if it is then it have a 30 second standby time)</SourceLine>
        <SourceLine>if startup.value = true then</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "3", "1")</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "3", "0")</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//adds the file to launch when the updater is done</SourceLine>
        <SourceLine>if launch.text = "" then</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "4", encodebase64("none"))</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "4", encodebase64(launch.text))</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//adds value for if the updater is hidden or not when updating</SourceLine>
        <SourceLine>if hide.value = true then</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "5", "1")</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "5", "0")</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//tells the person the file is created and where it shall be located</SourceLine>
        <SourceLine>msgbox "sysupdt.ini created! please put this in the" + endofline + "WINDOWS directory of the computers with the updater." + endofline + "Can also be added to the updater if there is a sysupdt.ini on the computer already."</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>PushButton</Superclass>
      <HookInstance>
       <ItemName>Action</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub Action()</SourceLine>
        <SourceLine>'//makes variables</SourceLine>
        <SourceLine>dim files as folderitem</SourceLine>
        <SourceLine>dim t as textoutputstream</SourceLine>
        <SourceLine>dim start, line, stop as integer</SourceLine>
        <SourceLine>dim s, md5, web, list as string</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//creates a new file in app folder using the name written in inifile textfield</SourceLine>
        <SourceLine>files = new folderitem(inifile.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets amount of new directories from a hidden textfield</SourceLine>
        <SourceLine>stop = val(diramount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//sets line entry to 1</SourceLine>
        <SourceLine>line = 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a for loop to write the folderinfo to the inifile</SourceLine>
        <SourceLine>for start = 1 to stop</SourceLine>
        <SourceLine>'//gets the text from dirlist.text using windowsendofline as separator from the line value</SourceLine>
        <SourceLine>s = nthfield(dirlist.text, chr(13), line)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the text gotten above into the inifile using start value as keyname</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Newfolders", str(start), encodebase64(s))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//increases line value by 1</SourceLine>
        <SourceLine>line = line + 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>next</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//enters directory amount to the inifile</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Newfolders", "Amount", diramount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets amount of files from a hidden textfield</SourceLine>
        <SourceLine>stop = val(fileamount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//resets lines value to 1</SourceLine>
        <SourceLine>line = 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a new file to list all the files</SourceLine>
        <SourceLine>files = new folderitem("list.HK")</SourceLine>
        <SourceLine>'//opens the new file as a textfile(not visible)</SourceLine>
        <SourceLine>t = files.createtextfile</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a for loop to enter data to the file list and updaterfile</SourceLine>
        <SourceLine>for start = 1 to stop</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets the text on the same lines from filelist, webdir and md5sums using windowsendofline</SourceLine>
        <SourceLine>s = nthfield(filelist.text, chr(13), line)</SourceLine>
        <SourceLine>web = nthfield(webdir.text, chr(13), line)</SourceLine>
        <SourceLine>md5 = nthfield(md5sums.text, chr(13), line)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//fixes a small problem with realbasic and converts the endofline character into windowstype(when writing directly into a textfile, realbasic uses unix type of endofline)</SourceLine>
        <SourceLine>list = replacelineendings(filelist.text, endofline.windows)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the text into the list.HK file</SourceLine>
        <SourceLine>t.write encodebase64(s) + endofline.windows</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the webdirectory for the files, where the keyname is a md5 hash of the file location and the webdirectory is encoded with base64</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Location", crc.str2md5(s), encodebase64(web))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the MD5 checksum of the file into the inifile, using the md5 hash of the file location as the keyname, the md5 checksum of the file is not encoded</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Check", crc.str2md5(s), md5)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//increases line counter by 1</SourceLine>
        <SourceLine>line = line + 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>next</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the amount of files into the inifile</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Files", "Amount", fileamount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gives the person a message telling the files are made</SourceLine>
        <SourceLine>msgbox inifile.text + " &amp; list.HK created! Upload them to " + ip.text + "/update"</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>PushButton</Superclass>
      <HookInstance>
       <ItemName>Action</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub Action()</SourceLine>
        <SourceLine>'//writes the ip and update filename into sysupdt.ini, both encoded with base64</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "1", encodebase64(ip.text))</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "2", encodebase64(inifile.text))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//checks and adds value to tell if the updater is a part of the startup or not (if it is then it have a 30 second standby time)</SourceLine>
        <SourceLine>if startup.value = true then</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "3", "1")</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "3", "0")</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//adds the file to launch when the updater is done</SourceLine>
        <SourceLine>if launch.text = "" then</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "4", encodebase64("none"))</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "4", encodebase64(launch.text))</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//adds value for if the updater is hidden or not when updating</SourceLine>
        <SourceLine>if hide.value = true then</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "5", "1")</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>ini.writeentry("sysupdt.ini", "Read", "5", "0")</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes variables</SourceLine>
        <SourceLine>dim files as folderitem</SourceLine>
        <SourceLine>dim t as textoutputstream</SourceLine>
        <SourceLine>dim start, line, stop as integer</SourceLine>
        <SourceLine>dim s, md5, web, list as string</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//creates a new file in app folder using the name written in inifile textfield</SourceLine>
        <SourceLine>files = new folderitem(inifile.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets amount of new directories from a hidden textfield</SourceLine>
        <SourceLine>stop = val(diramount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//sets line entry to 1</SourceLine>
        <SourceLine>line = 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a for loop to write the folderinfo to the inifile</SourceLine>
        <SourceLine>for start = 1 to stop</SourceLine>
        <SourceLine>'//gets the text from dirlist.text using windowsendofline as separator from the line value</SourceLine>
        <SourceLine>s = nthfield(dirlist.text, chr(13), line)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the text gotten above into the inifile using start value as keyname</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Newfolders", str(start), encodebase64(s))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//increases line value by 1</SourceLine>
        <SourceLine>line = line + 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>next</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//enters directory amount to the inifile</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Newfolders", "Amount", diramount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets amount of files from a hidden textfield</SourceLine>
        <SourceLine>stop = val(fileamount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//resets lines value to 1</SourceLine>
        <SourceLine>line = 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a new file to list all the files</SourceLine>
        <SourceLine>files = new folderitem("list.HK")</SourceLine>
        <SourceLine>'//opens the new file as a textfile(not visible)</SourceLine>
        <SourceLine>t = files.createtextfile</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a for loop to enter data to the file list and updaterfile</SourceLine>
        <SourceLine>for start = 1 to stop</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets the text on the same lines from filelist, webdir and md5sums using windowsendofline</SourceLine>
        <SourceLine>s = nthfield(filelist.text, chr(13), line)</SourceLine>
        <SourceLine>web = nthfield(webdir.text, chr(13), line)</SourceLine>
        <SourceLine>md5 = nthfield(md5sums.text, chr(13), line)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//fixes a small problem with realbasic and converts the endofline character into windowstype(when writing directly into a textfile, realbasic uses unix type of endofline)</SourceLine>
        <SourceLine>list = replacelineendings(filelist.text, endofline.windows)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the text into the list.HK file</SourceLine>
        <SourceLine>t.write encodebase64(s) + endofline.windows</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the webdirectory for the files, where the keyname is a md5 hash of the file location and the webdirectory is encoded with base64</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Location", crc.str2md5(s), encodebase64(web))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the MD5 checksum of the file into the inifile, using the md5 hash of the file location as the keyname, the md5 checksum of the file is not encoded</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Check", crc.str2md5(s), md5)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//increases line counter by 1</SourceLine>
        <SourceLine>line = line + 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>next</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//writes the amount of files into the inifile</SourceLine>
        <SourceLine>ini.writeentry(inifile.text, "Files", "Amount", fileamount.text)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gives the person a message telling the files are made</SourceLine>
        <SourceLine>msgbox "sysupdt.ini, list.HK and " + inifile.text + " created!" + endofline + "sysupdt.ini shall be in the folder containing the Updater on the client machines that dont have the file yet." + endofline + inifile.text + " and list.HK must be uploaded to " + ip.text + "/update"</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>PushButton</Superclass>
      <HookInstance>
       <ItemName>Action</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub Action()</SourceLine>
        <SourceLine>'//makes variables</SourceLine>
        <SourceLine>dim load, list as folderitem</SourceLine>
        <SourceLine>dim start, stop, line as integer</SourceLine>
        <SourceLine>dim s, file as string</SourceLine>
        <SourceLine>dim t as textinputstream</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//creates open dialog filter</SourceLine>
        <SourceLine>dim updtini as new filetype</SourceLine>
        <SourceLine>'//adds data to the filter</SourceLine>
        <SourceLine>updtini.name = ".ini"</SourceLine>
        <SourceLine>updtini.extensions = "ini"</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//opendialog with updtini filter</SourceLine>
        <SourceLine>load = getopenfolderitem(updtini)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//if user clicked cancel or close</SourceLine>
        <SourceLine>if load = nil then</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//if user clicked anything else(got file)</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//empty the textfields for file loading</SourceLine>
        <SourceLine>ip.text = ""</SourceLine>
        <SourceLine>md5sums.text = ""</SourceLine>
        <SourceLine>webdir.text = ""</SourceLine>
        <SourceLine>filelist.text = ""</SourceLine>
        <SourceLine>dirlist.text = ""</SourceLine>
        <SourceLine>inifile.text = ""</SourceLine>
        <SourceLine>launch.text = ""</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets ip and decodes it from sysupdt.ini</SourceLine>
        <SourceLine>ip.text = decodebase64(ini.readentry("sysupdt.ini", "Read", "1"))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets updatedata filename and decodes from sysupdt.ini</SourceLine>
        <SourceLine>inifile.text = decodebase64(ini.readentry("sysupdt.ini", "Read", "2"))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//checks if the updater is a part of the startup</SourceLine>
        <SourceLine>if ini.readentry("sysupdt.ini", "Read", "3") = "1" then</SourceLine>
        <SourceLine>startup.value = true</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>startup.value = false</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//adds the path to the file to start after updating(if any)</SourceLine>
        <SourceLine>if decodebase64(ini.readentry("sysupdt.ini", "Read", "4")) &lt;&gt; "none" then</SourceLine>
        <SourceLine>launch.text = decodebase64(ini.readentry("sysupdt.ini", "Read", "4"))</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//checks if the updater is hidden or not when updating</SourceLine>
        <SourceLine>if ini.readentry("sysupdt.ini", "Read", "5") = "1" then</SourceLine>
        <SourceLine>hide.value = true</SourceLine>
        <SourceLine>else</SourceLine>
        <SourceLine>hide.value = false</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//finds the full path for the file selected</SourceLine>
        <SourceLine>file = load.absolutepath</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets list.HK and opens it as a text file in the code</SourceLine>
        <SourceLine>list = getfolderitem("list.HK")</SourceLine>
        <SourceLine>t = list.openastextfile</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets amount of files from the updatedata file</SourceLine>
        <SourceLine>stop = val(ini.readentry(file, "Files", "Amount"))</SourceLine>
        <SourceLine>fileamount.text = str(stop)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a for loop and enters the decoded file locations to the filelist</SourceLine>
        <SourceLine>for start = 1 to stop</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>filelist.appendtext decodebase64(t.readline) + endofline</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>next</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes line get the value 1</SourceLine>
        <SourceLine>line = 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a for loop to enter webdirectory and md5 checksums to the textboxes</SourceLine>
        <SourceLine>for start = 1 to stop</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets the filenames added earlier in the code so we can get the other info</SourceLine>
        <SourceLine>s = nthfield(filelist.text, chr(13), line)</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//encodes the filenames into md5 hash to get the webdirecory and then appends them to the webdir textfield</SourceLine>
        <SourceLine>webdir.appendtext decodebase64(ini.readentry(file, "Location", crc.str2md5(s))) + endofline</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//encodes the filenames into md5 hash to get the md5 checksum of the files</SourceLine>
        <SourceLine>md5sums.appendtext ini.readentry(file, "Check", crc.str2md5(s)) + endofline</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//increases line value by 1</SourceLine>
        <SourceLine>line = line + 1</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>next</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//gets amount of folders from the updatedata file</SourceLine>
        <SourceLine>stop = val(ini.readentry(file, "Newfolders", "Amount"))</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//makes a for loop to get the directories</SourceLine>
        <SourceLine>for start = 1 to stop</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//appends the directories to the directory list</SourceLine>
        <SourceLine>dirlist.appendtext decodebase64(ini.readentry(file, "Newfolders", str(start))) + endofline</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>next</SourceLine>
        <SourceLine></SourceLine>
        <SourceLine>'//adds the amount of directories to a hidden textfield</SourceLine>
        <SourceLine>diramount.text = str(stop)</SourceLine>
        <SourceLine>end if</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>Timer</Superclass>
      <HookInstance>
       <ItemName>Action</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub Action()</SourceLine>
        <SourceLine>webdir.scrollposition = filelist.scrollposition</SourceLine>
        <SourceLine>md5sums.scrollposition = filelist.scrollposition</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>CheckBox</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>StaticText</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>EditField</Superclass>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>PushButton</Superclass>
      <HookInstance>
       <ItemName>Action</ItemName>
       <Compatibility></Compatibility>
       <Visible>1</Visible>
       <ItemSource>
        <TextEncoding>134217984</TextEncoding>
        <SourceLine>Sub Action()</SourceLine>
        <SourceLine>msgbox "If the updater is in the same directory as the file then just write the filename+extension" + endofline + "if it is not in the same directory then you must write the full path to the file+extension."</SourceLine>
        <SourceLine>End Sub</SourceLine>
       </ItemSource>
      </HookInstance>
     </ControlBehavior>
     <ControlBehavior>
      <Superclass>CheckBox</Superclass>
     </ControlBehavior>
     <Control>
      <ControlClass>StaticText</ControlClass>
      <ItemName>StaticText</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="TextAlign">0</PropertyVal>
      <PropertyVal Name="Text">Server IP(local):</PropertyVal>
      <PropertyVal Name="TabIndex">0</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">20</PropertyVal>
      <PropertyVal Name="Width">80</PropertyVal>
      <PropertyVal Name="Top">5</PropertyVal>
      <PropertyVal Name="Left">6</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">StaticText</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">StaticText1</PropertyVal>
      <ControlIndex>0</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">2</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">14</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal"></PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">1</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">102</PropertyVal>
      <PropertyVal Name="Top">5</PropertyVal>
      <PropertyVal Name="Left">87</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">ip</PropertyVal>
      <ControlIndex>1</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>StaticText</ControlClass>
      <ItemName>StaticText</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="TextAlign">1</PropertyVal>
      <PropertyVal Name="Text"><Hex bytes="76">46696C656C6973743A0D0A456E746572207468652046756C6C206C6F636174696F6E206F72206C6F636174696F6E200D0A66726F6D207570646174657220666F7220656163682066696C652E</Hex></PropertyVal>
      <PropertyVal Name="TabIndex">2</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">41</PropertyVal>
      <PropertyVal Name="Width">183</PropertyVal>
      <PropertyVal Name="Top">70</PropertyVal>
      <PropertyVal Name="Left">6</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">StaticText</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">StaticText2</PropertyVal>
      <ControlIndex>2</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">3</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">278</PropertyVal>
      <PropertyVal Name="Width">188</PropertyVal>
      <PropertyVal Name="Top">112</PropertyVal>
      <PropertyVal Name="Left">1</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">filelist</PropertyVal>
      <ControlIndex>3</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>StaticText</ControlClass>
      <ItemName>StaticText</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="TextAlign">1</PropertyVal>
      <PropertyVal Name="Text"><Hex bytes="70">446F776E6C6F6164204C6F636174696F6E2066726F6D206C6F63616C200D0A7765627365727665722069700D0A286578616D706C653A202F646174612F66696C652E6A706729</Hex></PropertyVal>
      <PropertyVal Name="TabIndex">4</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">41</PropertyVal>
      <PropertyVal Name="Width">165</PropertyVal>
      <PropertyVal Name="Top">70</PropertyVal>
      <PropertyVal Name="Left">196</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">StaticText</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">StaticText3</PropertyVal>
      <ControlIndex>4</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">5</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">278</PropertyVal>
      <PropertyVal Name="Width">171</PropertyVal>
      <PropertyVal Name="Top">112</PropertyVal>
      <PropertyVal Name="Left">196</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">webdir</PropertyVal>
      <ControlIndex>5</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>StaticText</ControlClass>
      <ItemName>StaticText</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="TextAlign">0</PropertyVal>
      <PropertyVal Name="Text">Name on update file:</PropertyVal>
      <PropertyVal Name="TabIndex">6</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">20</PropertyVal>
      <PropertyVal Name="Width">102</PropertyVal>
      <PropertyVal Name="Top">5</PropertyVal>
      <PropertyVal Name="Left">216</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">StaticText</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">StaticText4</PropertyVal>
      <ControlIndex>6</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>Separator</ControlClass>
      <ItemName>Separator</ItemName>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">7</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">4</PropertyVal>
      <PropertyVal Name="Width">611</PropertyVal>
      <PropertyVal Name="Top">62</PropertyVal>
      <PropertyVal Name="Left">0</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">Separator</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">Separator1</PropertyVal>
      <ControlIndex>7</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal"></PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">8</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">90</PropertyVal>
      <PropertyVal Name="Top">3</PropertyVal>
      <PropertyVal Name="Left">324</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">inifile</PropertyVal>
      <ControlIndex>8</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">9</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">80</PropertyVal>
      <PropertyVal Name="Width">361</PropertyVal>
      <PropertyVal Name="Top">427</PropertyVal>
      <PropertyVal Name="Left">6</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">dirlist</PropertyVal>
      <ControlIndex>9</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>StaticText</ControlClass>
      <ItemName>StaticText</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="TextAlign">0</PropertyVal>
      <PropertyVal Name="Text">New folders list: (example: "C:\WINDOWS\iownyou" will make the file "iownyou" in the windows folder)</PropertyVal>
      <PropertyVal Name="TabIndex">10</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">29</PropertyVal>
      <PropertyVal Name="Width">361</PropertyVal>
      <PropertyVal Name="Top">394</PropertyVal>
      <PropertyVal Name="Left">6</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">StaticText</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">StaticText5</PropertyVal>
      <ControlIndex>10</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">11</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">278</PropertyVal>
      <PropertyVal Name="Width">232</PropertyVal>
      <PropertyVal Name="Top">112</PropertyVal>
      <PropertyVal Name="Left">373</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">MD5sums</PropertyVal>
      <ControlIndex>11</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>StaticText</ControlClass>
      <ItemName>StaticText</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Multiline">True</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="TextAlign">1</PropertyVal>
      <PropertyVal Name="Text"><Hex bytes="77">4D443520636865636B73756D733A0D0A6D616B65207375726520796F752067657420746865204D44352076616C75650D0A6F66207468652066696C65206F6E207468652073616D65206C696E65</Hex></PropertyVal>
      <PropertyVal Name="TabIndex">12</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">41</PropertyVal>
      <PropertyVal Name="Width">238</PropertyVal>
      <PropertyVal Name="Top">70</PropertyVal>
      <PropertyVal Name="Left">373</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">StaticText</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">StaticText6</PropertyVal>
      <ControlIndex>12</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>PushButton</ControlClass>
      <ItemName>PushButton</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag">1</PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Cancel"></PropertyVal>
      <PropertyVal Name="Default"></PropertyVal>
      <PropertyVal Name="Caption">Get MD5 checksum of file</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">13</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">238</PropertyVal>
      <PropertyVal Name="Top">394</PropertyVal>
      <PropertyVal Name="Left">373</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">PushButton</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">PushButton1</PropertyVal>
      <ControlIndex>13</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>PushButton</ControlClass>
      <ItemName>PushButton</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Cancel"></PropertyVal>
      <PropertyVal Name="Default"></PropertyVal>
      <PropertyVal Name="Caption">Make sysupdt.ini</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">14</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">156</PropertyVal>
      <PropertyVal Name="Top">4</PropertyVal>
      <PropertyVal Name="Left">449</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">PushButton</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">PushButton2</PropertyVal>
      <ControlIndex>14</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>PushButton</ControlClass>
      <ItemName>PushButton</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Cancel"></PropertyVal>
      <PropertyVal Name="Default"></PropertyVal>
      <PropertyVal Name="Caption">Make inifile for updateserver</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">15</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">173</PropertyVal>
      <PropertyVal Name="Top">435</PropertyVal>
      <PropertyVal Name="Left">406</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">PushButton</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">PushButton3</PropertyVal>
      <ControlIndex>15</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>PushButton</ControlClass>
      <ItemName>PushButton</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Cancel"></PropertyVal>
      <PropertyVal Name="Default"></PropertyVal>
      <PropertyVal Name="Caption">Make sysupdt.ini and inifile for updateserver</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">16</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">232</PropertyVal>
      <PropertyVal Name="Top">457</PropertyVal>
      <PropertyVal Name="Left">376</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">PushButton</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">PushButton4</PropertyVal>
      <ControlIndex>16</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>PushButton</ControlClass>
      <ItemName>PushButton</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Cancel"></PropertyVal>
      <PropertyVal Name="Default"></PropertyVal>
      <PropertyVal Name="Caption">Open an existing update.ini file</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">17</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">229</PropertyVal>
      <PropertyVal Name="Top">480</PropertyVal>
      <PropertyVal Name="Left">376</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">PushButton</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">PushButton5</PropertyVal>
      <ControlIndex>17</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag">"</PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal"></PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">18</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">80</PropertyVal>
      <PropertyVal Name="Top">-21</PropertyVal>
      <PropertyVal Name="Left">635</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">diramount</PropertyVal>
      <ControlIndex>18</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal"></PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">19</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">22</PropertyVal>
      <PropertyVal Name="Width">80</PropertyVal>
      <PropertyVal Name="Top">5</PropertyVal>
      <PropertyVal Name="Left">635</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">fileamount</PropertyVal>
      <ControlIndex>19</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>Timer</ControlClass>
      <ItemName>Timer</ItemName>
      <PropertyVal Name="Width">32</PropertyVal>
      <PropertyVal Name="Height">32</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="Period">1000</PropertyVal>
      <PropertyVal Name="Mode">2</PropertyVal>
      <PropertyVal Name="Top">496</PropertyVal>
      <PropertyVal Name="Left">-55</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">Timer</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">Timer1</PropertyVal>
      <ControlIndex>20</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>CheckBox</ControlClass>
      <ItemName>CheckBox</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Value"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Caption">Updater is a part of the startup.</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">20</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">15</PropertyVal>
      <PropertyVal Name="Width">179</PropertyVal>
      <PropertyVal Name="Top">28</PropertyVal>
      <PropertyVal Name="Left">426</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">CheckBox</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">startup</PropertyVal>
      <ControlIndex>21</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>StaticText</ControlClass>
      <ItemName>StaticText</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="TextAlign">0</PropertyVal>
      <PropertyVal Name="Text">File to start after the updates are finnished:</PropertyVal>
      <PropertyVal Name="TabIndex">21</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">17</PropertyVal>
      <PropertyVal Name="Width">214</PropertyVal>
      <PropertyVal Name="Top">30</PropertyVal>
      <PropertyVal Name="Left">6</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">StaticText</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">StaticText7</PropertyVal>
      <ControlIndex>22</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>EditField</ControlClass>
      <ItemName>EditField</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Alignment">0</PropertyVal>
      <PropertyVal Name="AcceptTabs"></PropertyVal>
      <PropertyVal Name="LimitText">0</PropertyVal>
      <PropertyVal Name="ReadOnly"></PropertyVal>
      <PropertyVal Name="Mask"></PropertyVal>
      <PropertyVal Name="Text"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Format"></PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="BackColor">16777215</PropertyVal>
      <PropertyVal Name="TextColor">0</PropertyVal>
      <PropertyVal Name="UseFocusRing">True</PropertyVal>
      <PropertyVal Name="Password"></PropertyVal>
      <PropertyVal Name="Styled"></PropertyVal>
      <PropertyVal Name="ScrollbarVertical">True</PropertyVal>
      <PropertyVal Name="ScrollbarHorizontal"></PropertyVal>
      <PropertyVal Name="Multiline"></PropertyVal>
      <PropertyVal Name="Border">True</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">23</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">17</PropertyVal>
      <PropertyVal Name="Width">182</PropertyVal>
      <PropertyVal Name="Top">30</PropertyVal>
      <PropertyVal Name="Left">232</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">EditField</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">launch</PropertyVal>
      <ControlIndex>23</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>PushButton</ControlClass>
      <ItemName>PushButton</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Cancel"></PropertyVal>
      <PropertyVal Name="Default"></PropertyVal>
      <PropertyVal Name="Caption">?</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">22</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">17</PropertyVal>
      <PropertyVal Name="Width">15</PropertyVal>
      <PropertyVal Name="Top">30</PropertyVal>
      <PropertyVal Name="Left">216</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">PushButton</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">PushButton6</PropertyVal>
      <ControlIndex>24</ControlIndex>
      <Locked>0</Locked>
     </Control>
     <Control>
      <ControlClass>CheckBox</ControlClass>
      <ItemName>CheckBox</ItemName>
      <PropertyVal Name="InitialParent"></PropertyVal>
      <PropertyVal Name="DataField"></PropertyVal>
      <PropertyVal Name="DataSource"></PropertyVal>
      <PropertyVal Name="Value"></PropertyVal>
      <PropertyVal Name="Underline"></PropertyVal>
      <PropertyVal Name="Italic"></PropertyVal>
      <PropertyVal Name="Bold"></PropertyVal>
      <PropertyVal Name="TextSize">0</PropertyVal>
      <PropertyVal Name="TextFont">System</PropertyVal>
      <PropertyVal Name="AutoDeactivate">True</PropertyVal>
      <PropertyVal Name="HelpTag"></PropertyVal>
      <PropertyVal Name="Visible">True</PropertyVal>
      <PropertyVal Name="Enabled">True</PropertyVal>
      <PropertyVal Name="Caption">Hide the updater window</PropertyVal>
      <PropertyVal Name="TabStop">True</PropertyVal>
      <PropertyVal Name="TabIndex">24</PropertyVal>
      <PropertyVal Name="TabPanelIndex">0</PropertyVal>
      <PropertyVal Name="LockBottom"></PropertyVal>
      <PropertyVal Name="LockRight"></PropertyVal>
      <PropertyVal Name="LockTop"></PropertyVal>
      <PropertyVal Name="LockLeft"></PropertyVal>
      <PropertyVal Name="Height">15</PropertyVal>
      <PropertyVal Name="Width">179</PropertyVal>
      <PropertyVal Name="Top">43</PropertyVal>
      <PropertyVal Name="Left">426</PropertyVal>
      <PropertyVal Name="Scope">0</PropertyVal>
      <PropertyVal Name="Super">CheckBox</PropertyVal>
      <PropertyVal Name="Index">-2147483648</PropertyVal>
      <PropertyVal Name="Name">hide</PropertyVal>
      <ControlIndex>25</ControlIndex>
      <Locked>0</Locked>
     </Control>
    </block>
    <block type="Module" ID="329033727">
     <ObjName>crc</ObjName>
     <ObjContainerID>0</ObjContainerID>
     <IsClass>0</IsClass>
     <ItemFlags>1</ItemFlags>
     <IsInterface>0</IsInterface>
     <Compatibility></Compatibility>
     <Method>
      <ItemName>GetMD5hash</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <ItemSource>
       <TextEncoding>134217984</TextEncoding>
       <SourceLine>Function GetMD5hash(f as folderitem) As string</SourceLine>
       <SourceLine>// test parameters</SourceLine>
       <SourceLine>If f=Nil Then Return ""</SourceLine>
       <SourceLine>If Not f.Exists Then Return ""</SourceLine>
       <SourceLine>If f.Directory Then Return ""</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>// read file f to a string</SourceLine>
       <SourceLine>// Note: RB string supports any binary data</SourceLine>
       <SourceLine>Dim InputData As TextInputStream</SourceLine>
       <SourceLine>InputData=f.OpenAsTextFile</SourceLine>
       <SourceLine>Dim FileData As String</SourceLine>
       <SourceLine>If InputData=Nil Then</SourceLine>
       <SourceLine>// file f is not readable</SourceLine>
       <SourceLine>Return ""</SourceLine>
       <SourceLine>Else</SourceLine>
       <SourceLine>FileData=InputData.ReadAll</SourceLine>
       <SourceLine>InputData.Close</SourceLine>
       <SourceLine>End If</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>// get the MD5 digest</SourceLine>
       <SourceLine>Dim MD5Dgt As String</SourceLine>
       <SourceLine>MD5Dgt=MD5(FileData)</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>// convert MD5 digest to a Hex string</SourceLine>
       <SourceLine>Dim HashStr As String</SourceLine>
       <SourceLine>HashStr=ConvertToHex(MD5Dgt)</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>Return HashStr</SourceLine>
       <SourceLine>End Function</SourceLine>
      </ItemSource>
      <TextEncoding>134217984</TextEncoding>
      <AliasName></AliasName>
      <ItemFlags>0</ItemFlags>
      <Shared>0</Shared>
      <ItemParams>f as folderitem</ItemParams>
      <ItemResult>string</ItemResult>
     </Method>
     <Method>
      <ItemName>ConvertToHex</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <ItemSource>
       <TextEncoding>134217984</TextEncoding>
       <SourceLine>Function ConvertToHex(source as string) As string</SourceLine>
       <SourceLine>Dim SrcMB As MemoryBlock</SourceLine>
       <SourceLine>SrcMB=New MemoryBlock(Source.LenB)</SourceLine>
       <SourceLine>SrcMB.StringValue(0,SrcMB.Size)=Source</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>Dim ReturnValue As String</SourceLine>
       <SourceLine>Dim OneBitHex As String</SourceLine>
       <SourceLine>For i As Integer=0 To SrcMB.Size-1</SourceLine>
       <SourceLine>OneBitHex=Hex(SrcMB.Byte(i))</SourceLine>
       <SourceLine>If i&lt;&gt;0 Then</SourceLine>
       <SourceLine>If OneBitHex.Len=1 Then OneBitHex="0" + OneBitHex</SourceLine>
       <SourceLine>End If</SourceLine>
       <SourceLine>ReturnValue=ReturnValue+OneBitHex</SourceLine>
       <SourceLine>Next</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>Return ReturnValue</SourceLine>
       <SourceLine>End Function</SourceLine>
      </ItemSource>
      <TextEncoding>134217984</TextEncoding>
      <AliasName></AliasName>
      <ItemFlags>33</ItemFlags>
      <Shared>0</Shared>
      <ItemParams>source as string</ItemParams>
      <ItemResult>string</ItemResult>
     </Method>
     <Method>
      <ItemName>str2md5</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <ItemSource>
       <TextEncoding>134217984</TextEncoding>
       <SourceLine>Function str2md5(str as string) As string</SourceLine>
       <SourceLine>dim result as string</SourceLine>
       <SourceLine>for i as integer = 1 to len(str)</SourceLine>
       <SourceLine>dim s as string = hex(asc(mid(str,i,1)))</SourceLine>
       <SourceLine>if len(s) = 1 then s = "0" + s</SourceLine>
       <SourceLine>result = result + s</SourceLine>
       <SourceLine>next</SourceLine>
       <SourceLine>return result</SourceLine>
       <SourceLine>End Function</SourceLine>
      </ItemSource>
      <TextEncoding>134217984</TextEncoding>
      <AliasName></AliasName>
      <ItemFlags>0</ItemFlags>
      <Shared>0</Shared>
      <ItemParams>str as string</ItemParams>
      <ItemResult>string</ItemResult>
     </Method>
     <ViewBehavior>
      <ViewProperty>
       <ObjName>Name</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Index</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <PropertyValue>2147483648</PropertyValue>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Super</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Left</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>0</PropertyValue>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Top</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>0</PropertyValue>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
     </ViewBehavior>
    </block>
    <block type="Module" ID="1705175039">
     <ObjName>ini</ObjName>
     <ObjContainerID>0</ObjContainerID>
     <IsClass>0</IsClass>
     <ItemFlags>1</ItemFlags>
     <IsInterface>0</IsInterface>
     <Compatibility></Compatibility>
     <Method>
      <ItemName>WriteEntry</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <ItemSource>
       <TextEncoding>134217984</TextEncoding>
       <SourceLine>Sub WriteEntry(fileIni As String, Key As String, Name As String, Text As String)</SourceLine>
       <SourceLine>Soft Declare Function WritePrivateProfileStringA Lib "kernel32"  ( lpApplicationName As CString, lpKeyName As CString, lpString As CString, lpFileName As CString ) As integer</SourceLine>
       <SourceLine>Soft Declare Function WritePrivateProfileStringW Lib "kernel32"  ( lpApplicationName As WString, lpKeyName As WString, lpString As WString, lpFileName As WString ) As integer</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>Dim iniFile As FolderItem</SourceLine>
       <SourceLine>iniFile = GetFolderItem(fileIni)</SourceLine>
       <SourceLine>Dim intLen As Integer</SourceLine>
       <SourceLine>if System.IsFunctionAvailable ( "GetPrivateProfileStringW", "kernel32" ) then</SourceLine>
       <SourceLine>intLen = WritePrivateProfileStringW( Key, Name, Text, iniFile.AbsolutePath )</SourceLine>
       <SourceLine>ElseIf  System.IsFunctionAvailable ( "GetPrivateProfileStringA", "kernel32" ) then</SourceLine>
       <SourceLine>intLen = WritePrivateProfileStringA( Key, Name, Text, iniFile.AbsolutePath )</SourceLine>
       <SourceLine>end if</SourceLine>
       <SourceLine>End Sub</SourceLine>
      </ItemSource>
      <TextEncoding>134217984</TextEncoding>
      <AliasName></AliasName>
      <ItemFlags>1</ItemFlags>
      <Shared>0</Shared>
      <ItemParams>fileIni As String, Key As String, Name As String, Text As String</ItemParams>
      <ItemResult></ItemResult>
     </Method>
     <Method>
      <ItemName>ReadEntry</ItemName>
      <Compatibility></Compatibility>
      <Visible>1</Visible>
      <ItemSource>
       <TextEncoding>134217984</TextEncoding>
       <SourceLine>Function ReadEntry(fileIni As String, Key As string, Name As string) As string</SourceLine>
       <SourceLine>Soft Declare Function GetPrivateProfileStringA Lib "kernel32"  ( lpApplicationName As CString,  lpKeyName As CString,  lpDefault As CString,  lpReturnedString As ptr,  nSize As Integer,  IniFile As CString ) As Integer</SourceLine>
       <SourceLine>Soft Declare Function GetPrivateProfileStringW Lib "kernel32"  ( lpApplicationName As WString,  lpKeyName As WString,  lpDefault As CString,  lpReturnedString As ptr,  nSize As Integer,  IniFile As WString ) As Integer</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>Dim iniFile As FolderItem</SourceLine>
       <SourceLine>iniFile = GetFolderItem(fileIni)</SourceLine>
       <SourceLine>Dim intLen As Integer</SourceLine>
       <SourceLine>dim tmp as String</SourceLine>
       <SourceLine>dim strText  as new MemoryBlock( 256 )</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>if System.IsFunctionAvailable ( "GetPrivateProfileStringW", "kernel32" ) then</SourceLine>
       <SourceLine>intLen =  GetPrivateProfileStringW( Key, Name , "", strText, strText.Size, iniFile.AbsolutePath )</SourceLine>
       <SourceLine>tmp=strText.WString( 0 )</SourceLine>
       <SourceLine>If intLen &gt; -1 Then</SourceLine>
       <SourceLine>tmp = Left(tmp, intLen)</SourceLine>
       <SourceLine>End If</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>ElseIf System.IsFunctionAvailable ( "GetPrivateProfileStringA", "kernel32" ) then</SourceLine>
       <SourceLine>intLen =  GetPrivateProfileStringA( Key, Name , "", strText, strText.Size, iniFile.AbsolutePath )</SourceLine>
       <SourceLine>tmp=strText.CString( 0 )</SourceLine>
       <SourceLine>If intLen &gt; -1 Then</SourceLine>
       <SourceLine>tmp = Left( tmp, intLen )</SourceLine>
       <SourceLine>End If</SourceLine>
       <SourceLine>end if</SourceLine>
       <SourceLine></SourceLine>
       <SourceLine>return tmp</SourceLine>
       <SourceLine>End Function</SourceLine>
      </ItemSource>
      <TextEncoding>134217984</TextEncoding>
      <AliasName></AliasName>
      <ItemFlags>1</ItemFlags>
      <Shared>0</Shared>
      <ItemParams>fileIni As String, Key As string, Name As string</ItemParams>
      <ItemResult>string</ItemResult>
     </Method>
     <ViewBehavior>
      <ViewProperty>
       <ObjName>Name</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Index</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <PropertyValue>2147483648</PropertyValue>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Super</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>ID</PropertyGroup>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Left</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>0</PropertyValue>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
      <ViewProperty>
       <ObjName>Top</ObjName>
       <Visible>1</Visible>
       <PropertyGroup>Position</PropertyGroup>
       <PropertyValue>0</PropertyValue>
       <InheritsFrom>Object</InheritsFrom>
      </ViewProperty>
     </ViewBehavior>
    </block>
    <block type="UIState" ID="0">
     <WindowState>
      <OpenTab>
       <ObjContainerID>0</ObjContainerID>
       <EditSplit>200</EditSplit>
      </OpenTab>
      <OpenTab>
       <ObjContainerID>1544916991</ObjContainerID>
       <LeftSplitter>148</LeftSplitter>
       <RightSplitter>172</RightSplitter>
       <ScrollX>0</ScrollX>
       <ScrollY>108</ScrollY>
       <LastPositionH>64</LastPositionH>
       <LastPositionV>64</LastPositionV>
       <Control>0</Control>
      </OpenTab>
      <OpenTab>
       <ObjContainerID>1544916991</ObjContainerID>
       <AlternateEditorID>1</AlternateEditorID>
       <LeftSplitter>160</LeftSplitter>
       <EmptyEventState>0</EmptyEventState>
       <CodeItemID>0</CodeItemID>
      </OpenTab>
      <OpenTab>
       <ObjContainerID>329033727</ObjContainerID>
       <AlternateEditorID>1</AlternateEditorID>
       <LeftSplitter>160</LeftSplitter>
       <EmptyEventState>0</EmptyEventState>
       <CodeItemID>0</CodeItemID>
      </OpenTab>
      <LastLocation>Window1.PushButton4.Action</LastLocation>
      <EditBounds><Rect left="0" top="47" width="1280" height="727"/></EditBounds>
     </WindowState>
    </block>
    </RBProject>
    updater code on sourceforge (link in first post)

    enjoy

    PS: yes i know the xml code looks like a pain to read but it is the only way to make a "readable" source file for those without realbasic :s
    Last edited by *HK*; 26-08-09 at 11:38 AM.

  5. #5
    Rawwwwr! devisz is offline
    MemberRank
    Aug 2009 Join Date
    291Posts

    Re: [Release] Checksum Checking Updater Source

    so if those files are changed inside mu client, you won t be able to connect right ?

    just like checksum for main.exe ?


    I click getchecksum and put my client files that i don t wanna be modified then copy the checksum inside server folder ? And if anyone changes a client file then it will disconnected right ?

    Let me know if i m right

    Tx
    Last edited by devisz; 27-08-09 at 03:39 AM.

  6. #6
    MUonline AntiLag Creator *HK* is offline
    MemberRank
    May 2006 Join Date
    norwayLocation
    371Posts

    Re: [Release] Checksum Checking Updater Source

    no if the checksum of the listed files does not match the checksums in the
    http:// updateurl. whatever/update/ yourchecksumfile.extension

    it will download the correct file from the

    http:// updateurl. whatever/yourdir/ yourcorrectfile.extension

    the update manager is line based so the first line in all textboxes(except the one for directories) belongs to each other

    [location of file to check],[where on the updatesite the file is if the checksum dont match],[checksum of the new file]
    PS: the location of the file to check is also used to check if the file exists or not, if it doesnt exist then it is the same as the checksum not matching.
    Last edited by *HK*; 27-08-09 at 08:47 AM.

  7. #7
    Rawwwwr! devisz is offline
    MemberRank
    Aug 2009 Join Date
    291Posts

    Re: [Release] Checksum Checking Updater Source

    Aha ... i see

    I was really good to create a prog that makes checksum for more than 1 file and if anyone modify them inside client he won t connect to game

  8. #8
    MUonline AntiLag Creator *HK* is offline
    MemberRank
    May 2006 Join Date
    norwayLocation
    371Posts

    Re: [Release] Checksum Checking Updater Source

    Quote Originally Posted by devisz View Post
    Aha ... i see

    I was really good to create a prog that makes checksum for more than 1 file and if anyone modify them inside client he won t connect to game
    nobody said you can only have checksum on 1 file in this :P or am i misunderstanding?

    anyway it have a limit of 32767 files
    if you change the integer values into double or int64 then the limit will be 2billion files(abit too much dont you think? o.O)

  9. #9
    Live your Life Stifi is offline
    MemberRank
    Nov 2007 Join Date
    BulgariaLocation
    452Posts

    Re: Checksum Checking Updater Source

    btw, what program you use to copile it ?



Advertisement