v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Editing 40d Talk:Utilities

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.

You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "40d"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
__TOC__
+
== AutoHotKey ==
  
 
=== Dwarf Fortress File Depot ===
 
Would be great to get the majority of these uploaded to the [http://dffd.wimbli.com/ Dwarf Fortress File Depot (DFFD)].  I'm having trouble with some of the currently linked hosting sites.  I've just gotten Regional Prospector, so I'll see about getting that one up.  Thanks guys! --[[User:SlMagnvox|SlMagnvox]] 14:33, 25 February 2008 (EST)
 
 
 
<hr>
 
 
 
=== Accent Removal ===
 
I added the accent removal utility here from [[Accent Removal]], since that's about to be deleted. However, none of Wikipedia's show-hide-box stuff works here (I assumed it would...), so it's a big glob of pre-formatted text in there that should be hidden. Could someone do it? [[User:Zardus|Zardus]] 00:51, 15 May 2008 (EDT)
 
:[[User:Jackard/Accent_Removal|Accent removal tutorial]] contains detailed instructions on the subject. I think, we could replace the whole thing on utility page with one link. [[User:Nophotoavailable|Nophotoavailable]] 20:58, 1 August 2008 (EDT)
 
 
=== AutoHotKey ===
 
 
Should autohotkey be added as a utility tool for dwarf fortress? I know a few forum users have used it to do repetitive tasks like room designations, maybe it could have its own page and a few dwarf fortress specific script?--[[User:Thehunterunseen|Thehunterunseen]] 20:43, 31 October 2007 (EDT)
 
Should autohotkey be added as a utility tool for dwarf fortress? I know a few forum users have used it to do repetitive tasks like room designations, maybe it could have its own page and a few dwarf fortress specific script?--[[User:Thehunterunseen|Thehunterunseen]] 20:43, 31 October 2007 (EDT)
  
Line 38: Line 25:
 
:::::I think it's a lag issue in DF.  I've yet to figure out exactly what is causing lag for me.  I think it's pathing with too many dwarfs and too complex of a hallway system over too many Z levels.  Also, I think playing very large maps causes me to lag, as well, but I think that's related to the pathing problem and all those other creatures trying to path.  It definitely got better in this version, tho.  I will hold off on trying to say definitively what's up with AuthoHotkey until after the next patch.  --[[User:Geofferic|Geofferic]] 03:50, 21 November 2007 (EST)
 
:::::I think it's a lag issue in DF.  I've yet to figure out exactly what is causing lag for me.  I think it's pathing with too many dwarfs and too complex of a hallway system over too many Z levels.  Also, I think playing very large maps causes me to lag, as well, but I think that's related to the pathing problem and all those other creatures trying to path.  It definitely got better in this version, tho.  I will hold off on trying to say definitively what's up with AuthoHotkey until after the next patch.  --[[User:Geofferic|Geofferic]] 03:50, 21 November 2007 (EST)
  
::::::AHK does tend to do wierd stuff in DF, but most of it is predictable. A lot of wierd errors that make no sense can be fixed by explicitely telling the script to focus on the Dwarf Fortress window, as well as generous Sleep statements. I found while rewalling a 30x30 outline, sleep 100 worked fine for the first two sides but posted about half of the second two. Sleep 150 placed the second two somewhat erraticly. Sleep 200 got the second two just fine. --[[User:Knivesu|Knivesu]] 10:22, 23 December 2007 (EST)
+
== Dwarf Foreman ==
  
:::::::Just tested, and the weird behavior of AHK does not happen in DF 38c, but does happen in 40d11 (I came back to DF after time away).  I have tried altering my scripts in a ton of ways to get them working with 40d11, to no avail (Changing key delay, using sendplay or sendinput instead of send, etc).  So, perhaps there is hope that it will magically work right again in a later release. [[User:Nephelim|Nephelim]] 00:06, 23 June 2009 (UTC)
+
Crap, can't finish this, or even format it properly because my connection is flaking out when I try to submit to the wiki.--[[User:Trukkle|Trukkle]] 20:28, 3 November 2007 (EDT)
  
=== Dwarf Foreman ===
+
:Foreman is looking at the wrong address for the units... which is not a good sign, since I've seen it in the address it seems to be looking at.  I've also seen it bounce around.  Definitely not a good sign if the list location isn't static.  Or we're just looking at the wrong one completely. --[[User:AzureLightning|AzureLightning]]
Foreman is looking at the wrong address for the units... which is not a good sign, since I've seen it in the address it seems to be looking at.  I've also seen it bounce around.  Definitely not a good sign if the list location isn't static.  Or we're just looking at the wrong one completely. --[[User:AzureLightning|AzureLightning]]
 
  
:It's pretty easy to find the addresses for this for new versions. Running the program in the directory with the new version gives you the check= value, and the others are moderately easy to suss. Also, I don't know exactly how it works or why it works, but from C->D->E start and pos were incremented 0x1000 each version, so laziness dictates trying that in future. [[User:Qalnor|Qalnor]] 16:37, 9 December 2007 (EST)
 
  
Is there any info on what the offsets (dwarfidpos, critter_start, profession_start) actually refer to?  I'm capable enough with finding memory addresses, but exactly what profession_start is eludes me.  Even dwarfidpos is a little unclear.
 
  
dwarfidpos = Address of Dwarf Race ID
+
<pre>To make foreman compatible with 33d, download the new version and update the config file to the following:
critter_start = Start of Main Creature Vector
 
profession_start = Offset into Main Creature Vector the array of jobs.
 
[[User:Jifodus|Jifodus]] 00:41, 7 March 2008 (EST)
 
  
Does anyone know the values for v0.28.181.39f? --[[User:Aristoi|Aristoi]] 18:18, 10 August 2008 (EDT)
+
check=007a6535
 
+
critter_start=0141EA30
:Still no word on 39f? Perhaps we can get a little write-up on how to discover the appropriate values added to the foreman homepage. That way, when a new version of DF is released, any number of people could search for and contribute the new values, instead of depending on the few people who already know the process. --[[User:SWSaunders|SWSaunders]] 09:10, 12 August 2008 (ADT)
+
dwarfidpos=0123FAC8
 
 
::Thanks Jerethi50, beat me to it.  When I went to enter the values you already had!  SWSaunders:  What I did (having never done this before) was to download a memory viewer (HxD hexeditor) and then look at the old version vs the new version in memory.  In the old version, I found the character at the dwarfidpos address and searched forward till I found that in the new file.  For critter_start I went to the old process and found it there, then searched forward in the new process till I found the pattern match (it wasn't too far).  The data was different but the pattern was the same.  The profession offset hasn't changed so I left it as is. --[[User:Aristoi|Aristoi]] 11:13, 12 August 2008 (EDT)
 
 
 
:::That's exactly how I do it, except I have written a program that does it for me, since it saves time. I also tend to forget to post Dwarf Foreman's new config during updating. Usually I remember to update the tables at http://www.geocities.com/jifodus/tables/ini_jifodus/ and that has all the information you'd need (critter_start=[creature_data].base; profession_start=[creature_data].jobs); however, it seems I didn't update it this last go around. If you wander around my website, you should be able to find enough information posted there (provided you can understand it all) to learn how to update foreman for yourself. --[[User:Jifodus|Jifodus]] 22:22, 14 August 2008 (EDT)
 
 
 
::::Can someone that understands all this go through and get up to 40d13 information for what to put in the config file? Because I honestly have no idea where to start on this, but I really don't want to downgrade to an earlier one after seeing how much better 40d13 is running for me than the older versions were. [[User:Shardok|Shardok]] 20:30, 6 August 2009 (UTC)
 
 
 
To make Foreman compatible with previous versions of Dwarf Fortress, update the config file as shown below.
 
 
 
==== v0.27.168.33g ====
 
<pre>check=008c407c
 
critter_start=01427B50
 
dwarfidpos=01248AC8
 
profession_start=45c</pre>
 
 
 
==== v0.27.173.38a ====
 
<pre>
 
check=01E30A43
 
critter_start=01450E98
 
dwarfidpos=01271E10
 
 
profession_start=45c
 
profession_start=45c
</pre>
 
 
==== v0.27.176.38a ====
 
<pre>
 
check=023401d3
 
critter_start=01463378
 
dwarfidpos=01284188
 
profession_start=480
 
</pre>
 
 
==== v0.27.176.38b ====
 
<pre>
 
check=01e3dbcc
 
critter_start=01463570
 
dwarfidpos=01284188
 
profession_start=0470
 
</pre>
 
 
==== v0.27.176.38c ====
 
<pre>
 
check=01cf4654
 
critter_start=01464570
 
dwarfidpos=01285188
 
profession_start=0470
 
</pre>
 
 
==== v0.28.181.39a ====
 
<pre>
 
check=01aa9d3a
 
critter_start=015124f4
 
dwarfidpos=0131f1b8
 
profession_start=0474
 
</pre>
 
 
==== v0.28.181.39b ====
 
<pre>
 
check=01a16957
 
critter_start=015134f4
 
dwarfidpos=013201b8
 
profession_start=0474
 
</pre>
 
 
==== v0.28.181.39c ====
 
<pre>
 
check=01b89dbc
 
critter_start=01513514
 
dwarfidpos=013201d8
 
profession_start=0474
 
</pre>
 
 
==== v0.28.181.39d ====
 
<pre>
 
check=01b0747e
 
critter_start=0151f93c
 
dwarfidpos=0132c1e0
 
profession_start=0474
 
</pre>
 
 
==== v0.28.181.39e ====
 
<pre>
 
check=01b76baa
 
critter_start=0151f93c
 
dwarfidpos=0132c1e0
 
profession_start=0474
 
</pre>
 
 
==== v0.28.181.39f ====
 
<pre>
 
check=036276be
 
critter_start=01575dec
 
dwarfidpos=01382690
 
profession_start=0474
 
</pre>
 
 
==== v0.28.181.40a ====
 
<pre>
 
check=03186cb3
 
critter_start=0158222c
 
dwarfidpos=0138e698
 
profession_start=0474
 
</pre>
 
 
==== v0.28.181.40c ====
 
<pre>check=032e896f
 
critter_start=0158222c
 
dwarfidpos=0138e698
 
profession_start=0474</pre>
 
 
==== v0.28.181.40d2 ====
 
<pre>
 
check=01807735
 
critter_start=014D1404
 
dwarfidpos=012DD2F8
 
profession_start=00000544
 
</pre>
 
  
==== v0.28.181.40d3 ====
+
And you'll be good to go!</pre>
<pre>
+
[http://forums.somethingawful.com/showthread.php?threadid=2677834&userid=0&perpage=40&pagenumber=54#post336697223 Originally posted by Mu.]    --[[User:Jackard|Jackard]] 05:02, 5 December 2007 (EST)
check=0191B535
 
critter_start=014D341C
 
dwarfidpos=012DF310
 
profession_start=00000544
 
</pre>
 
  
==== v0.28.181.40d4 ====
+
== Yourfilehost ==
<pre>
 
check=0190599F
 
critter_start=014D341C
 
dwarfidpos=012DF310
 
profession_start=00000544
 
</pre>
 
  
==== v0.28.181.40d5 ====
+
Yourfilehost.com has kind of a lousy reputation, and I can confirm it's blocked on certain college networks. Could someone upload these utilities to a more reputable host? -- Mzbundifund 15:55, 04 November 2007 (EDT)
<pre>
+
: Such as? --[[User:Rick|Rick]] 18:03, 4 November 2007 (EST)
check=019687A7
 
critter_start=014D5434
 
dwarfidpos=012E1328
 
profession_start=00000544
 
</pre>
 
  
==== v0.28.181.40d6 ====
+
==heal.exe==
<pre>
 
check=018D14AA
 
critter_start=014EDE3C
 
dwarfidpos=012F9D30
 
profession_start=00000544
 
</pre>
 
  
==== v0.28.181.40d7 ====
+
heal.exe does not regrow missing limbs. However, "heal -hurt" on the command line brings missing limbs to red status, and "heal" thereafter restores the being to full health.
<pre>
 
check=01A78193
 
critter_start=014EDFCC
 
dwarfidpos=012F9EC0
 
profession_start=00000544
 
</pre>
 
  
==== v0.28.181.40d8 ====
+
I propose a -regrow parameter so we don't have to do this workaround, since if it's possible to bring missing limbs from dark grey to red status it's also possible to grow them back.
<pre>
 
check=01860A3C
 
critter_start=014EDFCC
 
dwarfidpos=012F9EC0
 
profession_start=00000544
 
</pre>
 
  
==== v0.28.181.40d9 ====
+
Also, when using the -hurt parameter, it still says "059E7210 had 31 body parts '''healed'''", when it should probably say "wounded". --[[User:JT|JT]] 17:58, 10 November 2007 (EST)
<pre>
 
check=01318B82
 
critter_start=014EDFCC
 
dwarfidpos=012F9EC0
 
profession_start=00000544
 
</pre>
 
  
==Regional Prospector?==
+
: Hmm, if it does heal missing limbs then I just need to change my logic slightly for healing. --[[User:Rick|Rick]] 19:01, 10 November 2007 (EST)
I notice the Regional Prospector utility is no longer listed - what happened to it and did it get updated to the newest version? --[[User:Squirrelloid|Squirrelloid]] 05:20, 20 November 2008 (EST)
 
:The functionality is now provided on the embark screen, so the utility is obsolete. [[User:Random832|Random832]] 08:38, 20 November 2008 (EST)
 
::Except it really isn't.  Yeah, I can have it search the world for a site for me, but it doesn't tell me where exactly those features are - so if I want to play with size or location a little bit I don't know if I'm losing anything.  It also returns only one hit, which can make finding the type of site you want hard, especially as some variables (tree cover, relative elevation, diversity of alignment/biomes) can't be searched over making that first hit with an underground river and magma pipe (or whatever) not necessarily the one you want. --[[User:Squirrelloid|Squirrelloid]] 10:42, 20 November 2008 (EST)
 
:::Yes, it is. Regional Prospector would make the game show various features on the local embark map such as chasms, magma vents and magma pools. This is now supported natively by changing the "SHOW_EMBARK_???" variables in the init.txt file to "ALWAYS". Same functionality. The site finder feature which you're referring to is an additional feature, which indeed doesn't yet work perfectly. --[[User:Janus|Janus]] 11:06, 20 November 2008 (EST)
 
  
::::Similar variables have to be set during worldgen, although I believe they are set to "show" by default.--[[User:Maximus|Maximus]] 12:44, 20 November 2008 (EST)
+
==reveal.exe==
  
: Say, does anyone know of a list that explains the symbols that Prospector uses? It took me forever to be certain that a red single tilde was a magma pool, while a red double-tilde (a.k.a. squiggly equal sign) was a magma ''pipe'', and there are still a couple symbols I'm not sure about...
+
From what I've tested, reveal for 33a does not work for 33b. --[[User:Sparksol|Sparksol]] 13:39, 17 November 2007 (EST)
:--[[User:Macdjord|Macdjord]] 13:12, 20 November 2008 (EST)
 
:: There used to be a map key in the '''RP''' section.  [[http://www.dwarffortresswiki.net/index.php?title=Utilities&oldid=28602#Regional_Prospector history]]
 
  
== Lifevis?! ==
+
:Correct.  It uses hardcoded offsets, which will change every time new code is added to DF.
 +
:I have a version hacked for .33b, which I will not distribute out of respect for Rick.
 +
:However, if you are skilled with a hex editor, here's what to do: change the first 5 occurances of the pattern 85 45 01 to the pattern 95 45 01.  (The 6th occurance of the pattern is a coincidental match and should not be changed.)  Then change the pattern 8C 33 89 00 to the pattern 8C 43 89 00.<br/>&mdash;[[User:0x517A5D|0x517A5D]] 02:31, 19 November 2007 (EST)
  
There's a realtime replacement for 3Dwarf out: [http://www.bay12games.com/forum/index.php?topic=29314.0] (yes, i made the thread, but no i don't claim any credit for the util.) It should '''totally''' be added to the list! But where?
+
:Actually, as it happens, it looks like Rick has produced updated versions of his tools for .33b. They were built on the 16th. However he hasn't linked to them. I don't know why. The URL they're at requests that no links be made to them, so I'm not going to tell you. Sorry, you'll just have to do the hexedit.<br/>&mdash;[[User:0x517A5D|0x517A5D]] 02:45, 19 November 2007 (EST)
:Wow I just took a look at Lifevis, it's really something special! I guess it would come under "Movies, Screenshots, Map Files" best, although perhaps we need a whole new "3d utilities" section. Either way, it should definitely be included.
 
  
== Dwarf Foreman Vista ==
+
:I just havn't mirrored them yet, that's all. --[[User:Rick|Rick]] 03:10, 19 November 2007 (EST)
 +
::Hey, I'm curious why the file sizes ballooned.  Reveal went from 52k to 101k, a doubling in size.  Heal grew even more.  Maybe you didn't strip debugging info?<br/>&mdash;[[User:0x517A5D|0x517A5D]] 15:42, 19 November 2007 (EST)
 +
:::Usage of std libraries mostly. I made a library for working with DF so I wouldn't have to keep duplicating code through projects, and when writing it I figured I might as well make it more friendly for me to code in, hence usage of std:: stuff. --[[User:Rick|Rick]] 19:00, 19 November 2007 (EST)
  
Whenever I try to run Dwarf Foreman in Vista I get a message saying "Couldn't connect to Dwarf Fortress, Is it Running?".  Any ideas?  I'm using 40d9 and have the latest updates to the config file.
+
:Whenever I try to open reveal.exe, the window will open up for a millisecond and then immedietely close. Is this a problem with the program or my windows? I am assuming its windows since everyone else seems to be able to use it. Has anyone else had this problem?--[[User:Varsashi|Varsashi]] 17:59, 26 November 2007 (EST)
  
:As is standard for most DF Utilities, you'll probably need to be running in Admin, or otherwise ensure that the program has access to edit memory locations of another program. Other than that, Sorry, no idea. --[[User:N9103|Edward]] 11:15, 20 March 2009 (UTC)
+
::It hasn't been updated to work with 33c, and doesn't. Hopefully it will be updated soon. If you're using 33b, it should open and close quickly but reveal all allocated squares. To allocate all squares for revealing, I'll repeat the advice I've seen elsewhere: go to the lowest level and designate the entire level for digging, then remove the dig designation and run the reveal utility. --[[User:Janus|Janus]] 20:08, 26 November 2007 (EST)
  
::Problem's probably "40d9", most of the utilities haven't been upgraded since "40d" --[[User:Solarshado|Solarshado]] 21:49, 20 March 2009 (UTC)
+
==How to use warp.exe?==
 +
How do you use warp.exe? There's no information on how to use these on the page.--[[User:Demosthenes|Demosthenes]] 02:10, 21 November 2007 (EST)
 +
: <code>warp.exe</code> by itself will list your current cursor position. After you have the position you want to warp a creature to, you do <code>warp.exe <x> <y> <z></code> as arguments, and it will warp the selected creature (selected with 'V'iew) to that destination, if it can. --[[User:Rick|Rick]] 18:10, 21 November 2007 (EST)
  
:Try this: rename the "Dwarf Fortress.exe" file to "dwarfort.exe". Also use put this text in a file named "config" in the Foreman directory:
+
==StartProfile==
<pre>check=01318B82
+
How does one use this? The readme isn't very helpful. --[[User:Jackard|Jackard]] 01:08, 27 November 2007 (EST)
critter_start=014EDFCC
+
: Not knowing exactly what you're having trouble understanding, I'll give examples (the one thing I forgot to add in the readme).<br /><code>startprofile 0 Miner.txt</code> - This will set the skill profile of the first Dwarf, in the list of units, to the skills in Miner.txt<br /><code>startprofile 1 Jeweler.txt</code> - This will set the skills on the second Dwarf, in the list of units, to the skills in Jeweler.txt<br /><code>startprofile -x 3 Customprofile.txt</code> - This will save the set of skills on the fourth Dwarf to Customprofile.txt<br /><code>startprofile -v0.27.169.33b 0 Miner.txt</code> Same as the first example, except it'll work on the previous version of Dwarf Fortress.<br />-- [[User:Jifodus|Jifodus]] 03:28, 27 November 2007 (EST)
dwarfidpos=012F9EC0
+
::Thanks, I'll try that out. --[[User:Jackard|Jackard]] 21:21, 27 November 2007 (EST)
profession_start=00000544</pre>
 
:That got Foreman working for me under XP. It is my understanding that there are issues for some Vista users <small>(the Dwarf Fortress executable is being relocated away from its natural base address for some currently-unknown reason)</small>, so this may not work for you.  Please post a reply especially if it does not work for you.<br/>&mdash;[[User:0x517A5D|0x517A5D]] 00:48, 21 March 2009 (UTC)
 
  
== Dwarf Therapist for the 40d* series ==
+
If you wish to edit the executable, you can modify it so that it works with 0.27.169.33d by making the following changes with a hex editor:
[http://www.bay12games.com/forum/index.php?topic=46841 40d* update branch] - from the forum post: <blockquote>
+
Offset  Overwrite With
Note: Currently works on windows with all versions from 39a-40d, 40d2-40d19_2 and all linux versions from 40d2-40d19!
+
----------------------------
</blockquote> --[[User:Altaree|Altaree]] 13:11, 24 March 2010 (UTC)
+
  2A530 | 98 16 25 01 04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00
=== Other ===
+
  2A6A6 | 30 2E 32 37 2E 31 36 39 2E 33 33 64
 +
  2A77C | 02
 +
-- [[User:Jifodus|Jifodus]] 20:14, 3 December 2007 (EST)
 +
:CBW; PUSH SS; AND EAX, 00000401h; ADD AH, BL; ADD [EAX], AL; ... 
 +
:That makes no sense.  Must be missing something off the head end.
 +
:3 unknown bytes; ADD [EAX+EAX], EAX; ...  No better.  Worse, even.
 +
:4 unknown bytes; ADD AL, 00h; ADD [EAX], AL; ...  Unh uh.  Don't think so.
 +
:8 unknown bytes; ESC-4(00); ... Floating point?  Really? No way.
 +
:12 unknown bytes; LOCK OR [EAX], AL ...  Insane.
 +
:I don't know what those bytes are, but they're not code.&mdash;[[User:0x517A5D|0x517A5D]] 23:23, 3 December 2007 (EST)
 +
::You're right, they're data. First Row is (left to right, 5 dwords): [[User:Jifodus/Memory research#Addresses_3|Start Address]], Offset from address at start address, Dwarf List begin offset, Starting points offset, Skills offset, remaining skill points points. Second row is a character string (15 chars max). Third row is a dword indicating which data index is default.
 +
:: <tt>//Start Addr, O, Lizt, Ponts, Skll, Remain</tt>  
 +
:: <tt>{ 0x01251698, 4, 0xDC, 0x8F0, 0x70, 0x1C0 }</tt> - The read/write locations and whatnot
 +
:: <tt>"0.27.169.33d"</tt> - Used for string comparison (-v flag)
 +
:: <tt>2</tt> - The default version to use is the third in the list (what the above just added).
 +
:: Configuration data can be found between 'DATA_SET' and 'TES_ATAD'. The list has enough space for 16 versions (3 are now in use). I'll just say I didn't want to have to recompile it for all the versions -- [[User:Jifodus|Jifodus]] 21:52, 6 December 2007 (EST)
  
So, what happened to the utilities such as granite.exe and ore.exe? No mention of them anymore, or did just nobody bother remaking them for 40d? Honestly I still play the old '2D' version of the game without the z axis, so I like being able to find those utils. xD --[[User:Kittenykat|Kittenykat]] 21:37, 9 March 2010 (UTC)
+
==Water==
:They're somewhere on DFFD - search for "23a" and they should show up. --[[User:Quietust|Quietust]] 15:27, 24 March 2010 (UTC)
+
"Note: If there is lava in a murky pool, it will be raised to depth 7/7."
 +
:Does anyone else find this hilarious? --[[User:Jackard|Jackard]] 14:11, 28 November 2007 (EST)

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Please sign comments with ~~~~

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)