==============================================================================
  ADGE v0.4b
==============================================================================

Changes in v0.4b:
-Huge overhaul in core graphic routines.  No longer will graphics be displayed by saving a BMP to a file on the hard disk and be loaded into the program.  Everything now is done in memory using BitBlt.  This should give a tremenous increase in speed
-Modified the palette structure to allow for better use of custom palettes and transparency.
-Added more advanced editors for all graphic information.  Graphics are now displayed as they would be in the game.  All graphics displayed are read entirely from the graphics.dat file (Including walls!) with transparency.  Certain editors have a laid out 'grid' on the floor to help with placement of graphics.
-Fixed a few bugs with the import manager when importing/exporting nothing.
-Attempted to fix the bug where progress windows don't disappear (??? I cannot reproduce this at all)

Changes in v0.3b:
-Added import manager (See the import manager section for help)
-Added editor for most of the ingame rect's to display ingame graphics
-Added editor for all of the ingame clickable buttons
-Added a more advanced editor for creature group graphic info
-Added a more advanced editor for floor item graphic info
-Added a more advanced editor for wall decoration graphic info
-Added a more advanced editor for door decoration graphic info
-Added a "teleporter info" viewer.  These values are unknown yet intriguing!
-Sorted the graphic editing list to be more friendly
-Added palette editors for most graphic info editors, allowing to customize the custom palette of certain types of graphics at various distances (including monsters, floor decals, wall decals, and door decals)
-Added support to display all images in all editors with the custom palettes at various distances
-Fixed a few bugs involving overflowing of variables
-Fixed the bug where, upon exiting adge, the process continues to run but is invisible (hopefully)  If you notice this bug still exists, please inform me.  The bug happens when you open certain windows and close them while running adge, try to narrow it down to the last remaining window that bugs the program if you find this bug again!


Changes in v0.2b2:
-added correct pallettes, thanks to Gambit37, to the main menu screen graphics, credit scroll graphics, and "zooom" main logo graphics.
-removed the "Importing xxxx.gif" popup while importing graphics as it is useless.

made by rain`


Bugs? Questions? Comments? Email me at pjgross@uwm.edu.


Import Manager
--------------
The import manager, as requested, should help greatly when a user is editing large amounts of graphics.  In the file menu, you can open the import manager and select various items of the graphics.dat file and batch export/import them.  Also included is an export all feature, to dump every file into the work directory.  The work directory defaults to ADGEDIR/work/, but is changable.  When exporting, the exported filenames will be "#### MAPFILENAME.EXT".  In order for ADGE to recognize your custom files in the import manager, the first word of your file MUST contain the number to match the appropriate item in the list!  All files will be exported as BMP's if they are of the IMG1 format, or DAT files if anything else.  When importing files, it will first look for a .DAT file to import, then if the item being imported is an IMG1 item, it will attempt to open any file as a picture (gif, bmp, etc) and match the pixels with the appropriate color in the graphic's palette.  Note, not all palettes are 100% correct yet, images such as the opening animation, credits, or main dungeon opening scene are using preset palettes.  I have a hunch as to where these palettes are stored in the graphics.dat file but they are not yet read dynamically.

**CAUTION: Importing and Exporting graphics has NO UNDO.  If you are editing one graphics.dat file, and export all your graphics, then open another graphics.dat file, and import them, they share the same work directory, and you essentially just copied a graphics.dat file!!!!  You may lose ALL your work if you accidently import a file when you did not want to!

***CAUTION: Importing large amounts of files at once with the import all feature is very slow and unoptimized, it is best to only keep a few files in your work directory, and using the export all feature only for dumping graphics.  Importing the files 558, 559, 560, 561, and 562 will overwrite all the information in the editors!


Exporting CSBWin object names
-----------------------------
When exporting CSBWin object names, it will produce an objnames.txt file for use with your CSBuild program.  Unforunately, since some object names are similar or the same (such as magical boxes or mon potions), you may end up with duplicate items.  This feature will give you a very nice base, but editing the names further will give best results.


+-----------------------------------------------------------------------+
|                           Editors                                     |
+-----------------------------------------------------------------------+

Item type editor
----------------
Simple editor to select an item type and change the name, conveniently loading all the item graphics from the graphics.dat file for you.  Note that all items have an 'item type' which contains the name of the item and its graphic, so it is possible for one multiple items to share the same name/graphic.

Object list
-----------
Edit all the objects in the game, the list contains all miscellaneous items, armor, weapons, and food.  Each editor includes the item type and combo # of the item.  It is feasibly possible to give potions the ability to shoot fireballs, or armor the ability to attack.  The wear locations can be changed to allow items to be placed in various areas of the inventory and optionally the chest.  Wear locations WILL be editable in the future as to where the items are graphically placed, and perhaps changing the allowable structure for wear each item can be placed with the bits of the wear location.  Just click on the graphic as to where you want the item to be able to be placed to toggle the ability to place it in that location.  Example: Clicking the mouth icon allows the item to be drank/eaten.  The floor graphic number specifies what graphic to be displayed on the ground/niche/etc while the item is in the dungeon.  To change the graphic of the item while it is in the inventory/hand, simply change the item type.

Misc item editor
----------------
Does not include any extra features aside from the standard object.

Weapon editor
-------------
Includes all miscellaneous item characteristics.  Also includes other variables such as weight and damage.

Weight: The weight of the object in 1/10ths of a unit.

Damage: The base damage caused by the object when attacking

Distance: Not sure exactly, but seems to be involved with how far the object is thrown.  Doesnt appear to be related to how far the object goes when using the SHOOT attack

Word4: Contains various bits including shoot damage and airborn graphic.  Word4 masked with 0x00FF gives the shoot damage variable and Word4 masked with 0x1F gives the airborn graphic variable.  The rest of the bits that are set are unknown, which is why word4 is editable.

Shoot damage: The base value for calculating how far an item will go when this item uses the SHOOT attack.  How far an item will go is directly related to how much damage it deals upon impact.

Airborn graphic:  The variable for a weapon which has its own custom graphic for when flying through the air (see missile editor), some items such as swords, axes, daggers, throwing stars, or poison darts use custom graphics while airborn.

byte1:  Contains various bits including delta energy, 'fires 0x0a', and 'fires 0x0b'.  byte1 masked with 0X0F gives the variable delta energy.  byte1 masked with 0x10 gives the variable 'fires 0x0a'.  byte1 masked with 0x20 gives the variable 'fires 0x0b'.  All bits not included are unknown/unused, which is why byte1 is editable.  Note, when an object has the 'fires 0x0a' or 'fires 0x0b' variable set, it must have another object in the left hand with byte1 equal to 0x0a (10) or 0x0b (11) respectively.

Delta energy:  This variable is the change in energy while the object moves through the air.  A high delta energy means as the item flies through the air, it loses energy very fast, and as a result does less damage as the weapon flies farther, eventually falling to the ground.


Armor editor
------------
Includes all miscellaneous item characteristics.  Also includes other variables such as weight and defense.

Weight: The weight of the object in 1/10ths of a unit.

Defense: The defense value added to the character when worn in either the head, chest, legs, or feet position.

Piercing resistance: This variable, in 1/7ths of a unit, is the amount of armor added to the character when hit with a piercing attack.  Some monsters use piercing attacks, which ignore some amount of armor depending on the piercing resistance.  A value of 0 will contribute 0 defense against a piercing attack, while a value of 7 will contribute full defense against a piercing attack.

Unused1: Appears to be unused.

Adds defense when held: When this bit is set, the item will add to the defense value when held in the players hand (left or right).  This allows shields to give defense while being held in a hand whereas armor such as a helmet does not.

Food editor
-----------
Includes all miscellaneous item characteristics.  Also includes the food value variable.

Food value: A simple value for how filling the food is.


Attack editor:
--------------
The attack editor allows a user to change some of the variables used when selecting and executing an attack.  Some characteristics of attacks are, unfortunately, built into CSB/DM and are unchangable.  The characteristics are listed below.  There are no ways to get around these issues except to modify the source of the game.

Name:  The name of the attack.  Note, there are only 300 characters available to be used for all attacks, so the combined length of all the names of all the attacks cannot exceed 300!

Skill: The associated skill that is required to use the attack, the amount of skill required to use the attack is set in the COMBO of the item, not the attack!  This skill also influences what type of experience you gain while executing the attack.

Experience: The base value of experience added to the character on each attack.

Defense: When using this attack, you're defense will be increased by this variable while the character's attack is greyed out (or fatigued).

Stamina: The base value of stamina used while using the attack.

Hitprob: The base value of calculating whether or not the attack is successful or misses.

Damage: The base value of how much damage the attack does (This is multiplied by the damage value of the weapon as well)

Fatigue: The amount of time, in 1/6ths of a second, that the character's attacks are greyed out, making him unable to attack again.  Could also be called the attack speed.

+++ Static attack characteristics +++
-------------------------------------
Note: This list includes the name of the attack for association purposes.  The name of the attack is not in relation to the skills, instead, it is dependant on the number of the attack.

LIGHTNING(23): Always shoots a lightning bolt of power 180
DISPELL(24): Always shoots a dispel missile of power 150
FIREBALL(20): Always shoots a fireball of power 150
SPIT(40): Always shoots a fireball of power 250

BASH(30)/HACK(18)/BERZERK(19)/KICK(7)/SWING(13)/CHOP(2): Always attempts to break down a door
DISRUPT(24)/JAB(16)/PARRY(17)/STAB(14)/STAB(9)/STUN(31)/THRUST(15)/MELEE(25)/SLASH(28)/CLEAVE(29)/PUNCH(6): Includes the list above, and are the only attacks that will attempt to damage a creature directly infront of them, all other attacks will not damage a creature directly.

CONFUSE(22): Always decrements charges
CONFUSE(22)/WARCRY(8)/CALM(37)/BRANDISH(41)/BLOWHORN(4): Always attempts to fear the opponent

SHOOT(32): Always attempts to shoot an item in the left hand

FLIP(5): Always flips a coin, yielding heads or tails.

SPELLSHIELD(33)/FIRESHIELD(34): Always casts the shield spell on the party

INVOKE(27): Always casts a random spell.  3/6 times being fireball, 1/6 times being either poison bolt, poison cloud, or dispel.  The power of the spell cast is random between 100 and 228.

FLUXCAGE(35): Always creates a fluxcage infront of the player

FUSE(43): Always executes "Fusion" on lord chaos or a high powered dispel attack.

HEAL(36): Always heals the character at the rate of SKILL #13 health per 2 mana OR 10 health per 2 mana, whichever is better.

WINDOW(39): Always casts see through walls.

CLIMBDOWN(10): Always attempts to climb down a single pit infront of the character without a monster.

FREEZELIFE(11):  Always freezes life.  If the item used is a blue magical box, then the power is 30.  If the item used is a green magical box, then the power is 125.  Otherwise, the power is 70 and charges are decrimented by 1.  I assume power is the amount of time, in 1/6ths of a second (ticks), that time is stopped.

LIGHT(38): Always increases the brightness by a constant and decreases charges.

THROW(42): Always throws the object strait forward.

DISRUPT(24): Always hits nonmaterial beings.

Combo editor:
-------------
The combo editor allows you to edit the list of possible combos possible to be used.  There is nothing static about combos, this will allow you to customize weapons and give them unique attacks, or unique combonations of attacks such as INVOKE/HEAL/BERZERK (If I ever see that combonation in any custom dungeon I will be rather amused).

Each attack in the combo has its own structure, and each structure is the same.

Attack #N: The attack to be used in the Nth slot, 255 represents no attack is possible.  A drop down list has been implemented for ease of use.  The edit button will take you to the attack editor of that specific attack.

Difficulty: The amount of experience (in levels) required to be able to use the attack.  A drop down list has been implemented again for ease of use.

Uses charges: The attack in this combo does use charges, and when down to 0, will be unable to be used again.  Certain items that have zero charges have a modified graphic.

Unused1: Seems to be unused, but strangely each combo has a value here which relates to a skill number.  At first glance you may think this value has an effect but in the actual CSBWin source code, it never seems to be accessed.  I believe this is a removed feature from the game during development.

Unused2: Unused variable.

Monster editor:
---------------
The monster editor allows you to edit most of the characteristics of a monster in CSB/DM except for a few static features, such as the spells that the monster will cast, or the ability to perform a 'second hit' like knights.

IDnum: The number of the monster for identification purposes.  Unknown use.

Sound: The sound number (editing the sound list is on the TODO list) of which sound to play when the monster attacks.  Setting this value to 0 makes the monster completely silent.

Armor: The defense value of the monster.

Base health:  The base health value of a monster.  This value will be the base value used when calculating how much health a monster has when created via a monster generator actuator.

Strength: The base value for how much damage the monster inflicts.

Attack type: This value dictates what kind of attack the monster uses.  Here is a compiled list of what each value represents, but is not 100% perfect nor tested:

1: Damage is modified by victim's anti-fire value
2: The armor of the victim is halved when calculating damage
3: Unknown
4: Deals piercing damage (see armor editor)
5: Damage is modified by victim's anti-magic value
6: Damage is modified by victim's wisdom value

Move speed: The minimum amount of time required to pass before a monster can move again.

Attack speed: The minimum amount of time required to pass before a monster can attack again.

Hitprob: The base value for calculating whether or not a monster's attack hits or misses.

Poison: The amount of poison inflicted when the monster successfully hits a character.

Unused1: Unused/unknown.

Unused2: Unused/unknown.

== WORD2 ==
Word2: Contains many bits and the space variable as long as a few unknown bits, which is why word2 is editable.

Space: The amount of space a monster takes up, 0 = 1/4th of the square, 1 = 1/2 of the square, and 2 = the full square.

Unknown1: Unknown.

Walks through walls: The monster will deliberately attempt to walk through fake walls, doors, etc.

Dumb: The monster is considered "dumb" and attacks a random character whether it is in the front row or the back row.  Why I chose dumb to represent this variable is because the code actually makes them dumb!

Levitates: The monster will not fall through pits.

Only hit by vorpal/disrupt: The monster is considered nonmaterial and can only be hurt by vorpal blades and the disrupt attack.

Only hit by dispel:  Not quite sure, but seems that if this flag is set, all projectiles except dispel will pass right through the monster.

Short:  The monster is short, and the door animation will go down farther while this monster is under it.

Drops items:  The monster will drop a preset list of items, specified in the monster drop editor.

Absorbs projectiles: When hit by any item, the monster has a chance to automatically carry the item until death.

Can see invisible: The monster can see the party when under the affect of the Invisibility spell.

Can see in darkness: The monster's visibility is unaffected by the light level of the dungeon (In darkness, monster's awareness is normally lowered)

== WORD4 ==
Word4: contains many bits as well as the x/y shiftgroup and front pics variable.

X Shiftgroup: This variable dictates what "group" the monster is in for various random shifts in the X coordinates of where to display its graphic.

Y Shiftgroup: Same as above.

Unknown1-4: Unused/unknown.

Front pics: The amount of pictures used for the monster when displaying its front graphics.  The materializers seem to always be facing the front, and have 3 pictures for it, where all other creatures do not.

Mirror image:  The picture for the monster when standing still can be mirrored at random.

Side image: The monster includes a side image.

Back image: The monster includes a picture from the backside.

Attack image: The monster has an attack image.

Mirror attack image: The attack image can be mirrored at the time the monster attacks.

Don't mirror in attack: Disables the random mirroring of the attack image while in its state of attack.

== WORD14 ==
Sightrange: How far the monster can see, used in AI calculations.

Unused1: Unused/unknown

Awareness: How far the monster can automatically detect the player and persue them.

Spellrange: How far the monster can be to attack from a distance (cast spells)

== WORD16 ==
Unused1: Unused/unknown

Bravery: The monsters resistance to warcry/blow horn/brandish/etc.

Skill: The base value of experience that the monster gives.

Teleport: Not sure exactly, but when set to 15, allows the monster to "teleport" a few squares away (i.e. lord chaos)

== WORD18 ==
Unused1: Unused/unknown

Magic res: The resistance to magical spells/effects, 15 = immune.

Poison res: The resistance to poison effects (poison cloud/bolt), 15 = immune.

Unused2: Unused/unknown

== WORD20 ==
Attack length: Amount of time to display attack graphic

Status speed: Amount of time to 'turn' ????

Atk Stat Spd: The amount of time after turning required to pass until an attack can be made ????

Unused: Unused/unknown

Monster drops editor:
---------------------
This editor allows you to customize the drops for each monster.  Unfortunately, the monsters that do drop items are hard coded and the amount of items dropped is limited.  Each monster that can drop items starts its drop at a designated spot and continues to drop items on the list until the item number reaches 0 or it fails to pass the 'sometimes dropped' test.

Item: The number of the item to be dropped

Sometimes dropped: If this bit is set, there is a 50% chance that the item will not be dropped and the monster will drop no more items.

Note: If an item is dropped, it will check the next available monster drop to see if it will drop another item.  It is possible for a monster to drop 38 items.  A item number of 0 is used to cutoff or break the loop of the monster.


Door editor:
------------
This editor allows you to edit some basic properties of doors.

Strength: The strength of the door, dictates how much power is required to break it open.

Byte0: Includes various bits and some unknown/unused bits, which is why it is editable.

Non-materials cannot pass: Any monster that is nonmaterial cannot pass through this door.  Although this bit seems to be used in the code, I swear that nonmaterial beings can pass through a porticullas door.

Projectiles can pass: Projectiles can be thrown through the door

Mirrored randomly: The door is randomly mirrored on its X and Y axis.

Spell editor:
-------------
A basic spell editor that allows you to customize the spells, incantation, and various other effects.

Runes: These 4 bytes represent the rune.  The first rune is always 0, and is used for the power of the spell, although setting this may result in only allowing the spell to be cast at a specific power.  Not sure, never tested it.

Fatigue: The amount of time, in 1/6ths of a second, that the player's attacks are greyed out.

Difficulty: The amount of experience (in levels) required to effectively cast this spell.

Skill: The skill number associated with difficulty.

Type: There are 3 main types of spells, "Needs a flask", "Missile launcher", and "Durational".  Each type dictates what the result of the spell is.  All other types of spells are unimplemented.

Result: The result of the spell, depending on the type, the following are possible:

Type-"Needs a flask": Requires an empty flask to be in the hand of the caster, and turns the flask into an item.  The item that the flask becomes is the "result + 2".  A result of 60 will turn the flask into the 60th item (cross of neta).  It is possible to create any potion and setting the value high enough to cross over into the weapon category may produce irregular results (crashing/errors?).  I have not tested this at all.

Type-"Missile Launcher": Shoots a missile spell out the front of the party.  The result is a missile of type 0xFF80 + result.  Values of 0-7 seem to be actual missiles, while any value above 7 may produce strange results (crashing/errors?).  I have not tested this at all.  Note, RNMonsterDeath happens to be 0xFFA8, which will be the missile if the result is 40.

Type-"Durational": The list of results are all that is implemented.  Any other value will do nothing but display a "Not implemented" box.

Rune editor:
------------

Difficulty multipliers: These values effect how difficult it is to cast a spell at a designated power.  Modifying these values will increase the level required to cast a certain spell at a set difficulty.

Mana multipliers:  Misinterpreted as mana multipliers, this is the cost of each rune (in units of mana) to add to the incantation at each difficulty level.  For example, a spell 6636 will cost 6+7+6+7 mana.

All other editors:
------------------
No documentation as of yet (sorry)



+-----------------------------------------------------------------------+
|                            CREDITS                                    |
+-----------------------------------------------------------------------+
In no particular order:

Paul Gross (me): For being me
Paul Stevens: For his unbelievable efforts in CSBwin and CSBuild.  For the inspiration, by porting CSB and cleaning up the source code, to make this editor.  For all the assistance and research put into CSB/DM.
Kentaro: For the sound import/export (I have not implemented them yet, but there is an ADGE release with the capabilities)
Zxy: For using my programs to create custom graphics in great custom dungeons, giving me a reason to continue.
PaulH: For hosting ADGE even after my my host went down without notice.
Gambit37: For using my programs to create custom graphics, even though his custom dungeon using the graphics has yet to come out, he still released a pretty awesome public set of graphics!
------
Credits from DMExtract, which was used as a base for ADGE.
Christophe Fontanel: For the file-format document which helped greatly (especially the IMG1/2 format), the LZW decomprression code, and hosting the best DM/CSB website/forums.  Thank you very much!
Brian ???: The source code for DMDecode helped me in my initial attempts at extracting graphics from graphic.dat files

+-----------------------------------------------------------------------+
|                             TO DO                                     |
+-----------------------------------------------------------------------+
The list of tasks to accomplish in the future (* = completed):

-Finish editors for the rest of files 558, 561, and all of 562
-Add a basic in-editor graphic editor for small changes.
*Add functionality to display all graphics while utilizing its transparency
*Optimize IMG1 encoding/decoding and implement fast importing of custom graphic file types.
-Add more documentation on various bits that are unused and features.
-Bug Paul Stevens about maybe* adding in implementations and features for some of the unused bits/bytes/words in the graphics.dat file (Such as the two unused bytes (32 bits!) in each combo!
-Add FONT import/export features
-Implement a "Creature exporter" which allows entire creatures to be easily transferred from one graphics.dat file to another, aside from static ingame abilities such as spells or the double swing?
-Bug Paul stevens to attempt to remove the static features of attacks and read the static feature from the graphics.dat file. (Remember, 32 bits of each combo is unused! Thats 32*44 = 1408 usable bits = 176 bytes!
-Add SND1 Import/exporters
-Add flexibility to load up graphics.dat files other than the atari versions with basic graphic import/export functionality.
-Continue to keep backwards compatibility with the atari version of dungeon master and chaos strikes back.
*Clean up the messy code.
-Add GUI features to easily access certain editors from other editors.
-Add mousewheel support to listboxes (No idea why mousewheel doesnt work)
-Fix remaining reported bugs.
-Add support for multiple MAP files and MAP file editors.
-Add support for custom item names, monster names, etc.
+-----------------------------------------------------------------------+
|                           BETA NOTE                                   |
+-----------------------------------------------------------------------+

This is a beta.

beta = bugs (probably)

I have not tested every thing in this app 100%.

Some things might end up quirky, I cannot test every case!

So that being said...

BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.
BACK UP YOUR GRAPHICS.DAT FILES BEFORE EDITNG, SAVING, MODIFIYING.
BACK UP FREQUENTLY.

Since you skipped probably 100+ lines of text before reading this, go back and read it some more.