                                                                               
         ##     ##             ##     ##       MetMedic.dontexist.org
          #n   n#               #n   n#                                     
          ##   ## *##### #####  ##   ## *##### *###n  #####  n##n#          
          ### ###  #   # # # #  ### ###  #   #  #  #n   #   n#  *#          
          # #n# #  # n v v # v  # # # #  # n v  #   #   #   #    v          
          # ### #  ###     #    # #V# #  ###    #   #   #   #               
          #  #  #  # * n   #    # ### #  # * n  #   #   #   #    n           
          #  Y  #  #   #   #    #  #  #  #   #  #  #*   #   *#  n#          
          #     # n#####  ###   #     # n##### n###*  #####  *##*#          
         ###   ###             ###   ###                                    

This a program for analysing the .met files that eMule creates. Good for nosy
people. It will process the known.met file and show you all the information on
your shared files, current and past. From this you can export lists of ed2k
links, generate checksums for your files, export all the information in
spreadsheet format. As well as, of course, plaintext link lists.

In the clients.met you can see all of the users and their transfered amounts,
and associated credits. This is an approximate figure, and is a basis for how
fast people negotiate your upload queue.

In the downloads section you can view your currently queued downloads. With a
whopping big progress bar at the bottom, showing part boundries.

Lately it has added support to recreate .part.met files that get corrupted by
freak accidents or monster invasions. This is tricky but possible. More support
for this will be built into later versions of eMule with any luck.
Instructions are provided step by step in the program.

Note: This is a work in progress. That means im probably constantly working on
it, not neccesarily exclusively. So if somethings broken, it can be fixed.

###############################
#  Gnu Public Liscense Stuff  #
###############################
Gnu Public Liscense Stuff - This file is part of MetMedic
Copyright (C) 2002-2004 KingArgGrr[NZ] ( arggrr@softhome.net /
 http://207.44.194.100/crackman.soft-ware.de/index.php )

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Or download from http://www.gnu.org/licenses/gpl.txt

##################################
# Comment abour VB runtime files #
##################################
All you should need to run MetMedic now is something called the
'Microsoft .NET Framework Redistributable'. Its about 20 megs or so.
Contains all the runtime crap needed to run the .Net programs.
Try downloading it here:
http://www.microsoft.com/downloads/details.aspx?FamilyID=d7158dee-a83f-4e21-b05a
-009d06457787&DisplayLang=en

###################
# Contact Details #     
###################
Email me: crackman@soft-ware.de
Irc     : irc://irc.liquidirc.com/metmedic  (This is an irc ink, used by mirc)
Homepage: http://www.crackman.soft-ware.de

###########################
# Hashset.bin File Format #
###########################
o++o
File Pos(b10)Data    Description                            
++++
0            DWORD   Number of entries                      
4            char[16]File Hash                              
20           char[4] Crc32                                  
24           char[16]Md5                                    
                                                            
o++o

/* Most of this stuff is obsolete.. A combined reverse score is no longer made.
#############################
# Reverse Score Explanation #
#############################

Since there was no real way set out to interprit your score, in a good way i
had to nut one out. With a few helpful suggestions along the way.
The score formula is worked on a clients uploaded and downloaded amounts to get
a modifier value used when calculating the score.. This is where the credit
takes effect. Now since every client you upload and download from stores this
information in their client.met file, you also store it in yours, in reverse.
Say client A downloads 5 megs from you, and upload 10 to you, thats stored in
both your clients.met files. From this, i can work quite a good estimate of
your credit. Of course, it cant be changed or hacked though.
The reverse score just swaps the inputs on the above formula, giving the score
as seen from a client say. So in calculating the credit, i average all of the
reverse scores, and multiple by the log(total uploaded + total downloaded). The
log.. bit is needed to differentiate from people whove been using emule for 5
mins to those who have been using for 5 months.
*/

###################
# Version History #                              
###################

v3.4.1547.41324
===============
Packaged up for new public release. Still test material, but its been a while.

v3.4.1544.38512
===============

Updated the dialogs for importing p2p ip lists to accept .txt files as well.
 (antip2p.txt)

v3.4.1541.20537
===============

Added a download merge, alpha stage atm. Allows you to copy all applicable data
 from one download to another, assuming they are both the same size.
 This might be usefull if you download the same file in 2 different locations,
 and want to combine both downloads into 1. It should work roughly ok.
Its available in the download tools. 

Reordered the tabs in the download tools window, deactivated the part copier
 and the other silly thing that was out of date, and mvoed their tabs to the
 right.

The stuff in the repair window, and the colour key in the bottom of the
 known.met slowly shrunk in size, everytime i compiled the app. Bit of a funny
 bug to do with something. Done a dirty patch to resize them when the app
 loads.
 
Started working on a help file, now i figured out how to make compiled html
 help files.

v3.4.1534.33811
===============

Finally figured out how to use splitter bars right. See how crap a programmer i
 am?
 
Fixed a couple of bugs, one to do with the initalisation of the browse button
 when friends window is selected. (not initted / last initted state).
Fixed: Irc link in the about box. Also the bug has a 20% chance of appearing
 now.

New release page under development. Now an option in the main toolbar.
Will download and parse .rdf/.rss xml news styles. It doesnt process all the
 info, just gets what it needs.
It will write the files to the metmedic folder, and only redownload if theyre
 over 2 hours old. Save hammering the news sites.

Release page redone with basic thread support. Save halting the whole app while
 reading news.

v3.4.1529.36965
===============
Added the ability to change the colours of the progress bar.. (start, end).

v3.4.1528.22810
===============

Still trying to fix problems where 'send items to mule' and 'export part.met
 crap' didnt work.. Should be fine now.
 
Added donkey noises..
Added a bug in about box.. Kinda broken for now, as it has a non transparent
 border. 1% chance of showing.
Fixed bugs: Several options in the known.met context menu didnt work, if
 missing files were not shown. Fixed all these, well hopefully all of them.
 Good spotting omicron1.

Toying with new icons.

v3.4.1527.30898
===============

Format time mode was not filled in correctly when options dialog opened..
 Now the correct option is filled in. (default, custom)
Version checking thread was murdered if it didnt finish in 1 second.. fixed
 now.

v3.4.1527.24591
===============

Made a basic installer using Nullsoft's NSIS v2. Allows me more control, and
 the ability to detect the .net framework etc. Now, if no .net is installed,
 a warning is shown and the option to goto my download page is given.
 
Updated program with my new page url.

Added registry check for videolan in the previewer add form. If you use the
 installer, it adds installpath and version into preferences. Failing this
 it will search default program locations.

Added a version check button on the about box. It will give the option to goto
 the download page if a new version exists. Rough for now. (halts app for 30s)

Fixed the 'auto locating of .met paths', so save you needlessly editing the ini
 file, not that you have to anyway.
 
v3.4.1520.35696.RC2
===================
Checksum window rewritten to provide an automatic mode, and options to checksum
 selected entries only. So now it can be called automatically when exporting
 .sfv files. All options selectable in the context menu.
 Also bugs fixed with the thread. Its terminated properly when the window is
 closed, and the flags reset. So when opening the window again, it will work
 right.
 
Bit of a serious bug fixed, crash when no ini file is present, a bug introduced
 earlier, with the ini and preferences classes.
 
v3.4.1520.33334.RC1
===================

Finished merging options to the new options dialog.

Known.met Autosplit crash/problem fixed.

.SFV output redone, now outputs 3 styles.
 old: 8.3 filenames, no paths. the short filenames are not guranteed to be 100%
 new: long filenames, QuickSFV likes these.
 best: paths + long filenames. QuickSFV handles these very well.
 
Fixed the case of no over-write warnings in the ouput module, and the case of a
 double warning for clients.met csv output.

v3.4.1520.17725
===============
Fixed int16 port issues in the server window.. some ports were showing as
 negative numbers, and the copy link thing didnt work.
 
Eyecandy.. The mule in the splashscreen now has weapons.. picked at random.
 This pic is plonked in the aboutbox, fullsize for now.. this might change if i
 can cleanly resize it.
 
Fixed some bugs: All output stuff now shows a replace dialog, and wont save if
 you cancel the dialog.

Known.met processing crash.. Except a few more of these sorts of crashes.
 Its due to the new database format.

And went over the checksum form thingie, still seems to be working.
 Log text box and progress bar going again.


3.4.1518.19984
==============

New options dialog. All preferences consolodated into a class now.
New .sfv output option, for known.met list. Uses current crc32 checksums
 generated.

3.4.1515.442
============
Started adjusting the part.met database to use internal taglists. seems to be
 paying dividends so far. Going over part.met related functions and making sure
 they go, as i should.

Improved: Locating entries by ip in the ipfilter list, MM now locates the first
 entry automatically. Should be a bit quicke now, and progressbar is enabled,
 since people have lists with 13,000 entries in them.

Added basic error handling for the clients.met load function. Didnt have any.

Added date+time custom formatting, for those who dont like the odd default
 style of time_t. no 12hr am/pm support as of yet.
 
v3.4.1512.42739
===============
Added a splash screen. Is shown before the mainform inits and creates its
 components, and is closed 1s after this has finished.

Changed the colours in the part history bar to more reflect that of the mod i
 been using.

Fixed: Last seen/Chatted times in friends window formatted properly now.

Log Window:
 Added context menu with 3 options.
 Select All  : Selects all lines. ctrl A
 Copy Line(s): Copies selected lines to the clipboard.
 --
 Clear       : Clear the log.

v3.4.1510.30514
===============

Fixed the Gpl.txt link in the about box. File couldnt be found, ever it seems.
 The url's shouldnt cause exceptions when they cant be found either.

Redone: deleting part & part.met function.. If it was broke before, its less
 broke now.

Reworked (again): Internal storage for known.met stuff.. Just experimenting.
 Now stores and reads/writes tags directly to a tag list. This means tag count
 /order/availability is preserved through processing alot better.
 Now, its irrelivant of whether is a tag is known or not.

The known.met editor (crude) will show the lists of tags for each entry, if
 youre curious.

Gaps have their own class now, with one for a gap list. Probably gonna be
 met specific, we'll see.

Added support for mods who like to keep active downloads in the known.met file.
 These entries are highlighted, and their .part is put into the path bit.
 (mind you its only matched by filesize/name).
 So ideally, if you lose this download, right click this entry, select
 "export / recover part.met file", youll be taken to the recover screen, and
 press da button.
 Should work roughly ok for now.


v3.4.1507.15983
===============

Added default path & registry investigation for the presets in the previewer
 add window. Will attemp to locate isobuster and winamp via the registry, and
 VideoLan Client & WinIso via default install paths. IF successful, these paths
 are entered automatically. Also updated the supported extentions for these
 files.

Fixed the 'Send to eMule' context menu from the known.met window.. This shell-
 executes ed2k links for the selected entries, so if eMule is associated with
 ed2k links, theyll be added.
Just a way to redownload old files you have had before, without having to hunt
 down links and stuff.
 

v3.4.1506.26843
===============

Fixed a bug where the paths would not save if the main path combo box didnt
 lose focus before the program ended.. Ie if you just browsed to a path and
 closed MetMedic.. Funny one.

Added 2 menu items to the ipfilter context menu. 1 to copy the first ip of
 the selected item, and another to copy the whole line to clipboard.
 
Added a new feature to the right click known.met menu. You can export entries
 to part.met files. Might be handy for reviving old downloads or some crap.
 
Removed the nag when you try to repair a file part or smaller.. (<= 9,500kB)
 It now hows for files <= 1kB.. and insults you for trying.
 (On a side note, it would have shown for files over 2 gigs too, not so now.)

The checkbox that tells MetMedic to automatically locate default met files from
 the emule path was off by default.. Is now on by default. Meaning once you set
 the path, all the met files are found automatically
 
Added a bunch of presets for the download previewer add window.. Should make it
 easier to use and figure out how to use.
 
v3.4.1506.22277
===============
Fixed another bug in the repair process, where it wasnt recording the last gap
 if it ran to the end of the file. Should be good now. And i fixed that
 exception (read beyond end of file stream).
 
v3.4.1506.1804
==============
Fixed a bunch of problems with the repair thing. should work again. Yeah call
 me stupid for putting so many bugs in it. So sue me bitches.

v3.4.1504.31727
===============
Finished the gap editor, seems to be working ok now. Ready for some testing
  anyways. The save buttons only saves the current part.met (for which the gaps
  are displayed).
You can add gaps by part, or by entering the numbers direct.
Also edit and remove gaps.

Be carefull, this is not 100% idiot proof, and nor should it be. So keep your
 wits about you.

v3.4.1495.35335
===============
Fixed bug with tags being dropped in known.met and part.met files.

v3.4.1495.14900
===============

Alot more class construction, consolodation and general mucking around.
New class files for known.met entries and part.met entries, giving them the
 ability to load and save themselves, as well as work out their own stats
 and return listview items based on themselves etc etc.

New class file handling the ini file. There will be a few redundant entries in
 there now, so if youre anal about keeping things tidy delete it and let MM
 recreate it. Not that those entries will do any harm. Saves window positions
 of some of the sub windows now too.

Verbose Output is not an option, not a compile time option. Set it in misc
 options.

Working on a generic download preview thing too. Allows you to add previewing
 programs and assign them to certain file types. So you could assign WinIso to
 all cd images, Winamp to mp3s, Video Lan and aviPreview to all video files etc
 Seems to work pretty well at present. The AviPreviewC frontend is still there,
 and is enabled if the path is set in the ini file. Cant be set from options
 anymore. I use it, buggered if i know if anyone else does. Hell, i bet no one
 reads this file even.
 
Most changes are structural and arent readily visible, except for 
 functionality and speed changes. (improvements, disimprovements etc)
 But they require reworking off all related code areas, so take some time.
 Bloody boring too i might add.
 

v3.3.1478.34837
===============

Whoops, the ipfilter.dat system was pretty damn slow. lots faster now.
This is a bit of a hotfix.

v3.3.1477.35431
===============
Added: Two pane known.met merging/swapper/differencer.
 It allows you to compare two known.met files, and move (with merge) entries
 between them. Handy for releasers who like multiple emules, and known.met sets.
 
 Still in beta. A bit rough around the edges, but i think its functionally ok.


v3.3.1472.28225
===============
Fixed: Colour key, now jumps up when you hover the mouse over it. Move the
 mouse to the listview, or left to the panel housing the checkboxes to hide it
 again. Good fun. Now the colour key gets mashed when you size the window
 small.

v3.3.1472.17847
===============

Added: Support for peerguardian p2p files. Theyre similar in format to
 ipfilter.dat files, except they dont store block value. So ive made the
 assumption that its 0.
 When exporting these files, only the entries in red, or with a block value of
 less then 127 are exported.
 Ill add support so that you can change this value at some stage.
 (make it more or less secure, in a sense).
 
v3.3.1471.19167
===============

Fixed: Ipfilter merging had a couple of holes in it. Some ipfilter.dat files,
 the lines start with #? which caused MM to reset the first ip for that entry
 to 0.0.0.0, which led to large ranges, and demolition of the file.
 Also some special cases, large ranges were created, also demoloshing the file.
 Now, if theres an error converting any ip or the block range, the line is
 chucked.
 
Added: Clear List items to each listview context menu. VB.Net garbage
 collection isnt immediate, but it might help keep down the memory profile when
 working with large files.

Fixed: Known.met dupe handling has had a workover and a few bugs fixed.
 You may notice green lines there now.
 Files, that exist, and that dupes of other files that exist, are marked in
  green now. These are strictly not dupes though, because if you removed them
  from known.met, emule would just see them and rehash them.
  
 Files, that exist, and have duplicates that exist, and marked dark blue now
  because of this. A 'for your information' thing.
  Similarly, files that dont exist, and are dupes of files that do, are marked
  blue.
  
 Files that dont exist, and are dupes of other files that dont exist are all
  marked red.
 
 When the stats merge box is checked, funny things happen.
 The first existing file, that has duplicates that exist, will aqcuire their
  timestamps.
 
 If, say, a missing file, that has existing duplicates is found, (it happens),
  then this file becomes the master of this group. It acquires their path and
  timestamp information.
 
 This is to prevent the wrong file becoming the dupe master, getting all the
  stats, only for emule to see a later one and rehash it. It seems to work ok.

 And finally, an odd case where dupes were given the same path. so they had the
 same path, name, fileexist status.. the first one gets the newest timestamp +
 stats, and is set master dupe. the other just a regular missing dupe (of an
 existing file).

v3.3.1470.18112
===============

Writing a class file now to handle the known.met stuff. More will follow
 in good time for the other .met files. This makes the source easier to read 
 and understand and removes alot of stuff from the main source files.
The idea being basically that all the code to deal with the known.met files
 will be housed in one class file. The same for the others eventually.
 
Might make it easier for people to flog them and use them in their own crappy
 programs too, as long as they obey the license its ok i guess.
 
Anyways: Dupe handling is alot easier to do now and has been re-enabled for 
 known.met files. Works good as far as i can tell. The Split options is now
 working too, equally well.

Adding: Known.met entry editor. edit basic info in the known.met entry.
 So far, supports file name and the stats.

Adding: IpFilter.Dat adder.. a form allowing you to add your own entries.
 
Added: General additions to the class files too.
 
v3.3.1467.37912
===============

Rewrote the IpFilter class file, now its smaller, more efficient and more
 usefull. Dupehandling is now available for loading and appending, which are
 basically the same thing now. Check options for turning off the dupehandling.
 
 You can elect not to merge duplicate items, which touch, but not overlap.

For example:

Merging touching items.. (descriptions are merged too, truncated here for this
 80 column text file)
000.000.000.000 - 000.255.255.255 , 100 , LOW_ID (invalid)
001.000.000.000 - 001.255.255.255 , 100 , Internet Assigned Numbers Authority
002.000.000.000 - 002.255.255.255 , 100 , Internet Assigned Numbers Authority
003.000.000.000 - 003.255.255.255 , 100 , General Electric Company
004.002.160.064 - 004.002.160.079 , 100 , Werner Media
->
000.000.000.000 - 003.255.255.255 , 100 , LOW_ID (invalid), Internet Assigne...
004.002.160.064 - 004.002.160.079 , 100 , Werner Media

Example of collision.. where the block value determines which one overwrites..
061.072.000.000 - 061.077.255.255 , 200 , KOREA TELECOM
061.073.042.000 - 061.073.054.255 , 100 , Kornet-Xdsl-Sinchon-kr
->
061.072.000.000 - 061.073.041.255 , 200 , KOREA TELECOM
061.073.042.000 - 061.073.054.255 , 100 , Kornet-Xdsl-Sinchon-kr

blah blah
Is there any need for this crap? who knows. Doesn't matter now. It's done.

v3.3.1467.23630
===============

Added: Support for IpFilter.dat files. Present, you can load, save and merge
 files, and do some general weeding. On a single load, no dupe checking is
 preformed at present though. This will come i suppose.
 
 But, very compilcated dupe merging is preformed when you append a file.
 Based on their block status, if ranges collided they are altered to fit
 around, inside or outside each other. A lower block takes priority over
 a higher block value. (lower = more secure, block harder).

Fixed: The autopath location thing got the wrong dir for the downloads window.
 changed from the incoming dir to the temp dir.

v3.3.1465.37536
===============
Using an installer now instead of the rar file thing.
 Nice one, easy to use.. Just install. Once u set the path, each subsequent
 install will know the folder. And it wont overwrite your ini file.
 It does store 1 thing in the registry,
 HKLM/software/Metmedic/Install_Dir= "place you installed it".
 
 The uninstaller should remove this.
 It also wont add a new uninstall entry for every install.
 This is the plan for a nice no overhead installer anyways.
 
Just converted it to the Gnu Public License.
Read the GPL.TXT file for more details.
Added copyright notice and link to gpl.txt to about box.

v3.3.1465.25253
===============

Fixed: The listview sorting class. Now its where i want it to be. Its about 3-5
 times faster, and shouldnt throw any overflow, underflow, interflow exceptions
 anymore.
 Also blank strings always sit at the bottom of the list now.
 Also, the horizontal position isnt reset every sort. Glad i fixed that.

 The lists used to be sorted twice every time a column was clicked. odd.
 blah blah gloat.

v3.3.1463.28855
===============

Fixed: A bug where metmedic wouldnt investigate the default shared path
 (the incoming folder) if its the only shared dir.

Fixed: That exception you get when selecting a path. You probably know the one.
 Anyways, a new thing will automatically locat the default .met files for you,
 and the default incoming path when you select emules config path in the
 options.
 This procedure is executed everytime you play with the path thing, so it can
 be turned off. If you desire it so.
 
Source tree cleaned up alot. Now i can release it as i go. Maybe some sap will
 try and work on it.
 
v3.2.1459.38319
===============

Rewrote the part file repairer.
 Should work infintely better.
 Has a sensitivity property now. This is the number of bytes metmedic will 
  consider a gap. Metmedic scans the file looking for blank sections, or 00's.
  Files can normally have 00's in them, and this can lead metmedic to falsely
  report them as gaps. It normally doesnt matter, unless it finds an excessive
  number of false gaps, then it might be getting dangerous. (untested with
  emule and all.).
  
  So unless youre a genius, stick with the presets. If you know the .part file
  is an archive, high sensitivity should be ok. If metmedic warns you about 
  excessive gaps, increase the value.
  
  Typically a part file will have a dozen gaps in it. maybe 20 at the most.
  50,000 is too much.

v3.2.1458.32543
===============
Added: Support for some new server.met tags.
  String: Version
  Uint32: LastPing (a new one)
  Uint32: UDPFlags


v3.2.1281.31575
===============
Just polishing this up for a final release. Looking for someone else to take
 the project on. Final release wont be perfect, but should work ok, with any
  luck.

Rewrote: Clients.met database, loading and saving functions to handle new
 format. Can merge different client.met versions too. If they have extended
 information from mods, beware though. (damn those mods, and this .met format)

Started Adding: Gap editor.. part of the downloads tools.

v3.2.1262.36097
===============
Added: VideoLan preview support. For video files in the download list. Head to
 options, Video Previewers.

v3.2.1258.38003
===============
Added: Yet more verbose output. Only enabled by setting build configuration.
 (Or by me only) Might make it an option someday.
Reworked: Options dialog now has tabs, as there is a bit of stuff gathering
 there. 
Added: Now reports build type on startup, to hopefully save a bit of confusion
 when i send the wrong thing to testers and crap.
Added: Friends window now warns if a file other than emfriends.met is
 processed. Improved code that does the same thing in other respective windows.
Fixed: Usual few minor niggles and bugs. 
Few code improvements. Using Enums instead of groups of constants.

v3.2.1253.39260
===============
Disabled: The Dupe features. (except colouring). Never bloody worked anyway,
 and this will be merged into emule itself shortly. (known.met dupe merging).
Added: Backup feature for metmedic.. Automatically backup any files it
 overwrites. (not a backup feature for metmedic). 3 levels of protection.
Added: About box size now saved to ini file. Cosmetic addition.
Added: Splitter bar in the log window. Cosmetic addition.

Misc bug fixes and code improvements. More to come too i would imagine.

v3.1.1246.31330
===============
Fixed: Bad function which is used to grab a list of shared dirs from 3 files.
 Now it will work alot better.
Fixed: Crash when processing downloads with no category.ini file.
Fixed: Problem getting list of shared dirs when category.ini file is not there.
 Bad code, how did this happen i wonder? Not like me at all.
Fixed: About box was 0% opaque. (transparent). Kinda makes it hard to see.
Fixed: Problem when writing string + string tags from structure. Could cause
 corrupt known.met file. (length of first string was written twice).

v3.1.1244.33129
===============
Improved: Ui design with regards to the download tools window.
Fixed: Slight outdated code with respect to the new tag parser/old tags/
 known.met files being saved. (the exclude useless info checkmenu)

v3.1.1244.23152
===============

Fixed: That blasted index error when no met files are specified in ini file,
 or there is no ini file. Should all work nicely now.
Fixed: Hybrid importing has been redone to a certain extent, can now load the
 part.met files it produces. Sub part copying should be faster now too.
Improved: Support for unknown/unneeded/unhandled tags in known.met files.
 They are loaded straight into a tag structure array, and are written as is.
 Still a few fixes associated with this though, now that i think of it.

v3.1.1243.33478
===============

New tag parser added. Should make processing unknown metfiles alot easier.
Preliminary edonkey multi-part -> emule part converter.
downloads, right click -> maintanence -> tools.

misc bugs fixed, more to fix. (ini problems again)

v3.1.1226.30363
===============
Added: Clipboard submenu to known.met, server.met and downloads lists. They
 let you copy information about selected entries to the clipboard.
Improved: The progress bar in the downloads screen. Hopefully. Wont get
 invalidated by the tooltip or messed up when the form is resized. And as for
 the tooltip: Hover the mouse to bring it up. And it remains until the mouse
 leaves the picturebox.
Partially Added: Tool window for downloads. Will give you the ability to copy
 parts between downloads, and do other tricky stuff. (Does nothing yet)
Debug: Used #if structures to make some of the try..end try structures only
 be compiled in release builds. Making it easier for me to debug in the IDE.
 Means nothing to you lot.
Fixed: Crash when selecting entries in the downloads list. Odd one.
Fixed: Other problems associated with processing part.met files.

v3.1.1221.19044
===============
Redone: Loading part.met files is now a bit more bombproof. It should pick
 around those corrupt part.met files that people like to keep so much.

v3.1.1219.28841
===============
Fixed: More delimiting problems, with paths stored in ini file.
Added: Checkbox in options that allows you to ignore all unknown tag messages.
Fixed: Coloum sizes not being set on load if the ini file existed. (bad logic)
Fixed: Stats: Transfered column can be sorted again. (known.met)

v3.1.1218.29567
===============
Fixed: Bug where files werre not located on hdd if they had a "," in their name
 or path. Now use "|" for a delimiter.
Fixed: Crash where MM had to verifiy a files existance.. save dialogs and
 stuff. Nuff said.

v3.1.1212.26702
===============
Updated: Version number to where it should be.
Fixed: Checksum window. Slider now sets proper priority. Status box shows
 thread status and priority. Window is resizable now.
Other tool windows are becoming resizable now.


v2.3.1211.38749
===============
Redone: All the layout logic and all form layouts have been tweaked.
Added: 2 columns in server window for new file limits saves in server.met.
 Servers can now report soft and hard file limits.
Fixed: Spelling mistake. (Aspusa)

v2.3.1210.34436
===============
Added: Last Seen column in the clients list. Now its been fixed in 28x series.
Hopefully Fixed: Errors caused by old or missing ini files. (like the one that
 was distributed with MetMedic. (kayfam)
Few minor code improvments.

v2.3.1206.19651
===============
Fixed: Menu items that did nothing. (emfriends append, and checksum generation)
Improved: Dupe checking still further, but emule still doesnt like the
 known.met files MM creates. Will get this fixed soon.

v2.3.1204.23168
===============
Fixed: Bug where repair would reject part.met files in certain situations.

v2.3.1203.18843
===============
Existing problem: After saving a known.met file, with dupes merged, emule tends
 to rehash a bunch of files. bad..

Fixed a bug where a failed .part.met repair could render program kind of
 inactive. Locked in processing mode actually.

Tided up known.met window quite a bit.


v2.3.1201.32162
===============
Second pass to the dupe check added. It catches dupes in the files that dont
 exist. Dark red indicates a group of dupes in files that dont exist. Their
 stats are merged into the first dupe found.

Adjusted the count when saving known.met files, its right now.

v2.3.1198.24902
===============

Repairs: Dupe checking repaired.
 Didnt catch all the dupes. Should do now. Now shows progress bar of this
 process.

v2.3.1198.17251
===============

Fixed: Problem with merging client.met files when dupes were present. Now saves
 them right. If an error occurs when loading a client.met file, it is truncated
 to that point in memory, and therefore will save correctly up to that point.
 With any luck.

Known.met:
 Optimsed part history loading slightly. Maybe not noticable.

 Merged stats are now saved if present. Finally. heh.


v2.3.1197.27287
===============

Fix: Crash when loading known.met file with no shareddirs.dat etc

Redone: About box layout. Added link to readme.txt

Progress bar colour has changed.

v2.3.1197.17258
===============

Redone:
 Known.met loading and processing has been redone. The complete file is loaded
  into database.  Then as its displayed, dupe checking etc is preformed and
  entries are appropriately flagged. This means a file only needs to be
  processed once, and if you change dupe options or what ever, just repopulate
  the list.

 Explanation of coloured entries:
 Gray: As before, files not present in shared dir structure.
 Dark Blue: This file is a duplicate of another, and its stats have been merged
  into the first instance of this file with a valid path.
 Dark Red: Dupe of another file/entry, but no stats merging.. Impossible
  situation. We'll see.

Classification of a duplicate entry:
 It does not exist on the hardrive, and is a duplicate of a file that presently
  exists. Caused by moving shared files from one folder to another, which
  forces emuleto create another entry in the known.met file, and a new set of
  stats.


v2.3.1194.19668
===============

Fixed issues with 64bit stat and known.met. Should load, display and save
 correctly.


v2.3.1193.27865
===============

Improving: Gui should be lots quicker when resizing and lists are updating.
 (actually their updates are halted for the duration of the process).
Added: My progress bar, which is much more efficient. (only redraws and checks
 system idle state when it changes, which is important when its called 50,000
 times for a process)

Added: A combo box to store the last used paths for each met file. Stores 6 at
 the moment. But no reason why it can't store 200 or so (except speed).. Depends
 how many met files people have. (i have lots coz i work with them)

Fixed: Sorting bug where name column in the friends list wasnt assigned a sort
 catagory. (ie it didnt sort correctly)

Fixed Hopefully: Issues with dupechecking not working in the known.met section.
 It should be ok again. Needs more testing.

v2.3.1190.29901
===============

Reworked: Consolodating friends functions into context menu. Adding exception
 handling.

Fixed: Clients.met saving produced 60% garbage. Nice one.
Added: Remove entries from the clients list. Why Ive seen garbage client
 entries caused by Fat32 crosslinking. Clients with rediculous transfer amounts
 are shown as corrupt in the list.
All Functions Consolodated into a context menu.

Fixed: Another crash associated with server.met section, and reorganised the
 window. Buttons have been moved into the right click context menu. (well the
 functions). All the windows will head this way i think.

Fixed: crash when saving server.met file.

Added: Option to save log file to disk, and keep it truncated to a certain size.
 Not perfect yet but working ok.
Added: You can now select the alternate line colour in the log list.

Added: Download functions.
 Reset partial hashset: This deletes the hashset from the .part.met file, which
  forces emule to redownload it when resuming that file. *May* help when you
  constantly download corrupt file parts..
 Change local file name: Self explanatory.
 Renumber download: Changes the number assigned to the .part and .part.met
  files. Already an option, will be moved here from the button basically.
All added to the download context menu.

v2.3.1189.15576
===============

Converted to Vb.Net.
First Public Release.

Added: Friends list.

New interaction between friends and clients list:
 If friends have been loaded already, they are automatically shown in the
 clients list. And if a emfriends.met file is present with the clients.met
 file, it is also loaded and shown. (but not added to the current friends 
 list).

Interface has been reworked a bit. New toolbars and coloured Listview controls.
 Known files list:
  Grey text indicates files that do not physically exist.
 Clients List:
  Colours range from Blue -> Red (They have high credit -> You have high credit)
  Green for invalid/corrupt/rediculous entry
  Icons represent base client (emule, edonkey, mldonkey)
 Log:
  Lines alternately coloured just for fun i spose.

 Html Links:
  All replaces with proper clickable links that launch default browser.

 All Listview Controls:
  Column Widths are now saved in the ini file, so resize them to suit your
  screen. You can hide columns by shrinking them right down. (width = 0 pixels)
 
Status Bar: (bottom)
 Second number from the right: Indicates number of entries in visible ListView
  control.
 Right hand number: Indicates number of entries Selected in visible ListView
  control.

More error checking: Dialogs will be shown when an error or exception is caught,
 and details written to the log window.




v2.3.113
========
Started work on an automated backup system
Improved Part.Met loading function, now with better error reporting.
(upgraded to help with the backup system)

v2.3.112
========
Fixed an overflow error when loading part.met files.
Added client base output in the client.met csv output function.

v2.3.109
========
Added a log window, logging all programs events and errors and stuff. Probably
not perfect
 yet but it works nice. You can now skip those annoying 'unknown tag' errors,
since theyre
 all logged.
Probably a few other fixes too.

v2.3.106
========
Will now remember last path used in a dialog. Saved to ini file.
Total size of shared files displayed in the coulumn header (known.met window).
This
 is total for the list, so will include dupes if present. Its just a rough stat.

v2.3.105
========
Fixed a bug where error messages loading the known.met file would cancel the
load
 process unneccesarily.
Added a temporary ignore for a funny tag in 25b.. 03 0100 18.. whats this for#
                                  
v2.3.103
========
Played with code tidying some parts up. More processes use the progress bar.

Went over dupe checking, merging routine.
Problem with the dupe checking routine was if you remove a dupe present in the
shared
 dirs, emule is only   gonna rehash and add it back to the known.met file.
So to prevent this, leave the checkbox checked. (Only a dupe if file does not
exist..)

Also duplicate files will now have unique paths. (paths won't exactly match the
files,
 but theyre dupes  anyway, so whats the difference).
Re-enabled the dupe merging routine now these things have been cleared up.

Dupe merging wont happen on known.met files that are appended at this stage,
though
 everything else applies.

v2.3.101
========
Bunch of bug fixes here..
Fixed up block renaming: Updates listview with new names.
Fixed tabstrip at the top becoming deactivated when process fail.
Fixed crash when pressing cancel on open dialogs and stuff.

You can now load additional known.met files.

Added support for SlugFilla's part history which is saved into the known.met
 file.. Bloating it immesurably.
Loads and saves this part history properly. You can also leave it out if you so
 desire.

Clients.met files are now saved with the right version number..

v2.3.99
=======
Ini file name and exe filename updated.
Will now delete old ini file when making new one.

v2.3.98
=======
Added pictures to a few buttons.
Made a new icon.
Tweaked a couple of things here and there.

v2.2.96
=======
Mucked around with known.met loading a bit. It now says properly when it finds
an
 unknown tag. (shows hex-edit view, which is usefull). These bad tags are still
 loaded, and will be written when the known.met file is saved.

v2.2.95
=======
Muddled around with known.met loading. Dupechecking now applies as the file is
 loaded. Repopulating wont show files excluded here, so reprocess. Better dupe
 handling combines all the stats for dupe entries into the first one loaded. And
 the first valid path/filename is used.
Client.met saving added and working good.

v2.2.94
=======
Added basic filesize formatting, for those having trouble with this.
Trying to fix it..

v2.2.93
=======
Name change: to MetMedic, as chosen in forum.

Alpha additions (not fully tested as of yet):
 Autoloads emfriends.met file when loading client.met file.
 Friends are now listed to the right if found, and that line is bolded.
Merging two client.met files.
 Slow.. if transfer amounts are different, they are added.
 Is not a cheat, wont increase your credit one bit. Be warned.
 May only make you think you have lots of credit, causing your head to swell..

v2.2.92
=======
Fixed bug where you cant change the details of the last server in the list.
Improved the add server function, should work now, and ip's shouldnt get messed
 up. Fixed up columns. (sort by databaseid, and last ping, hidden sort columns)

v2.2.91
=======
AVIPreview by Aj support finalised, and a front end built in for the AviPreviewC
 program. (supports all options).

v2.2.87
=======
AVIPreview by Aj support added. Right click on a file in the part.met view and
 select preview. (after setting avipreview path in the options.) Updated the
 method used to remove selected items from the known list. Now uses the same
 method as the server window.

v2.2.85
=======
Added option to leave out useless info when saving known.met file.
Completed server.met editing functionality.. Right on a server in the list to
 rename or edit description.. Remove selected servers from the list. Add servers
 to the list.. And save all servers present in the list to a server.met file.
+ a few bugs associated with server section fixed.

v2.2.81
=======
Fixed a bug with another unhandled tag.. Combination string/dword one. No sure
 way to distinguish it from gap tags.. Maybe a source fix in emule might abolish
 these unneeded info tags for good.

Working on server.met editing.. Youll be able to delete, add and edit servers in
 the list. And save results.
+ Other stuff lost in the whisps of time and space.. Since tears in the fabric
of
 space and time has been theorised as possible, i guess thats where they went.

v2.2.79
=======
Fixed a bug where certain clients.met files would load right if you had uploaded
 or downloaded more than 1 gig to a person. (overflow error calculating the
score)
Adding other file size formatting options.. half done now.

v2.2.77
=======
Download renaming added.. Select a block of downloads, and renumber them,
 starting at a certain number.
Some guy suggested it, easily enough done.

v2.2.76
=======
Numerous bug fixes to output functions. Nearly all were busted in some way.
Silly
 bugger. thanks for testing that bob.
Note: you may have to rehash all your files because of the way the filehash was
 cut in half. It happens. :)

v2.2.75
=======
Added an options window. Just csv output options for now.
More stats added to the download section. I can work out how much of the has
 actually been downloaded, and compared to the file throughput, work a rough
 (or exact) compression ratio. All good fun. (since emule uses zlib compression
 on transmission packets)
More changing crap around.

v2.2.71
=======
This version is unsupported, its like half way between releases. heh.
Half fixed a bug with file hash's.
Added some output options. Write a met file from the current known file list.
And csv output on the clients window with reverse score.
New ini file format in there somewhere too.

v2.2.66
=======
Fixed a bad bug with known frame not showing when you select its button while
 being in the server tab.
General number formatting improvments. Ping time formatted in server section.
New stat in server section (files per user)

v2.2.61
=======
Second Release: 15-12-2002
Fixed a bug in the about box. (link would crash program). Thanks Bob-m2tm for
 that.
Disabled the tab buttons while the program is processing something..
Safetyguard.
Fixed title bar in open dialog box. Now tells you what you are looking for.
Fixed crashes when pressing buttons when you shouldnt.
+ some other crap im sure.

v2.2.57
=======
Added a fix for an extra tag in tarods server.met files. The tag seems to store
Max Users for that server. Less than half the servers report this information.
But for the ones that do, ive used the max and current user count to work a
rough
loading statistic for the network. 2/3 full it seems. :)

v2.2.55
=======
Mucking around with file size formatting. Elandal[ARC] has been reccomended
 a standard for formmatting file sizes. Interesting.. Testing stage now anyway.

v2.2.54
=======
More columns fixed up.
Changed nags about missing shareddirs.dat and preferences.ini

v2.2.53
=======
Fixed a bug where program would crash when you have an empty shareddirs.dat
file.
Thanks ASK for that one.

v2.2.52
=======
Added Server.met support.
Fixed column sorting. Now faster, and file size columns show formatted numbers.
Misc bux fixes.

v2.2.50
=======
First public Release: 13-12-2002

Prior to this emule was a bowl of chaotic pea and ham soup. It was a jumbled
 form, whose purpose was to attemp to interprit the complex .met format.

Tibetian monks worked tireless solving the complex partial implicit
 differential equations..

Mammoths were cloned and used as beasts of burdeon to drive the turbines needed
 to power the parrallel processing matrix..