pouët.net

Gateways by Trauma

-=---------------------------------------------------------------------------=-

     .awmmw_
    j0MMMMMM#;                            T      R      A      U      M      A
   JMM@"""9MM1                                      t    r    a    u    m    a
  jMM!      "!           _i
 .0MT                    01
 JMM            aW0Ww.  0MWWm,  w00Wa  mm.    W,    mm _w0#w, 4W;    jW; w0#w,
 4Mf           4MMMMMb WMMMMM: dMMMMM1 4M1   dM6   JMfjMMMMMW JMW    MM 0MMMMW
 4MI     ____, 4!   M0  JM1   JMP   MM; MW   0M0   0M'JP`  NM; #Mi  JMT M0  "9
 4M1     MMMM$      0M  JM1   0M:___JM1 4M; JMNMi jMP      dM1 JMW  0M  MMw
 4MA     9MMM$   _w0MM  JM1   0MMMMMMME JMb 0M MA dM+   _w0MM1  4MiJMf  "MMWa
 `MM;      JM$  dMM^0M  JM1   0M""""""'  NMqMf 4MaM0   jM@"4M1   MW0M     MMMb
  4M0,     JM$ dM!  0M  JM1   #M;     .  4M0M'  MMMT  jMP  4M1   4MMf      "MM:
   NMMw___w0M$ 0M,  0M .JMb__,JMW_ __w1   MM@   #MM   4M1  dM1.   MM   jb_ _0M:
    HMMMMMMMM! #MWw0MM0i MMMMi #MMMMMMT   4MT   JMf   4MMm0MM#f  jMf   jMMMMM@
     "9MMMMP'  `@MM!"M!  "MMM   "MMMM'     M     M'    "MM!"MM'  0M'    "MMMP
                                                                jMP
                                                                0M'
                                                               jMP
                                                               0M'
                                                               "~

-=----[ Contents ]-----------------------------------------------------------=-

    i.    Legalese.

    ii.   System requirements

    iii.  Win95 issues.

    iv.   High IRQ:s and MIDAS sound system.

    v.    About MIDAS replay speed bug (and how we cope).

    vi.   Detailed credits.

    vii.  Sol rambles about the project and the future.

    viii. Member list.

    ix.   Production history.

    x.    Greetings.

    xi.   Contacting trauma members.

    xii.  Distribution sites.


-=----[ i. Legalese ]--------------------------------------------------------=-

    This material is not freeware. You are allowed to copy it without
    restrictions for non-commercial use.

    No payment of any kind may be charged for this product or any combination
    of products or services including this product without our authorization
    and official written license.

    Commercial use, especially the industrial manufacturing on any data
    storage media and their distribution without the expressed permission of
    the producer, is strictly prohibited.

    This program or the data files contained therein may not be altered or
    modified without the permission of the author.

    You take full responsibility for the operation of this software and any
    consequences thereof. We the creators can not accept liability for damages
    or failures arising from the use of this software.

    Some image loading code is based in part on the work
    of the Independent JPEG Group.

    Uses ZLIB data compression library by Mark Adler and
    Jean-loup Gailly.

    The demo uses MIDAS sound system v.1.1.2 by Sahara Surfers, which
    is currently the property of Housemarque Games.

    Gateways the demo is copyright(c) 1998 by
    Toni Lönnberg, Jani Oinonen, Kai-Eerik Komppa, Jari Komppa,
    Mikko Nurmi, Tero Kostermaa, Jetro Lauha and Allan Perämäki.


-=----[ ii. System requirements ]--------------------------------------------=-

    Required:
    - Pentium class PC
    - 32 megs of RAM
    - DOS, Win95 or Win98
    - VGA

    Recommended:
    - PentiumII 300MHz
    - 128 megs of RAM
    - Win95
    - Fast PCI VGA with VESA VBE 2.0 truecolor low-resolution support.
      (possibly via Scitech Display Doctor)
    - SoundBlaster AWE64


-=----[ iii. Win95 issues ]--------------------------------------------------=-

    You should run Gateways with parameter W if running under
    Win95 DOS box to calculate correct sync timings.

    Win95 may ask for DOS mode at demo init. This is normal. Just
    say no and let the demo run. There is something in MIDAS init
    that causes this; you can get rid of it by changing your DOS
    box preferences not to suggest ms-dos mode.

    And while you're at it, make sure the DPMI memory limit in the
    DOS box preferences is set to AUTO.

    Sol will build a win32 version of the demo sometime in the
    future; the DOS version of the demo may get upgraded too.


-=----[ iv. High IRQ:s and MIDAS sound system ]------------------------------=-

    MIDAS sound system doesn't like high IRQ:s. If you get no
    sound when using this program, reconfigure your soundboard
    to use IRQ that is 7 or lower.

    This problem does not seem to be dos-extender specific, and
    occurs also under Win95.

    With Gravis Ultrasound-based cards, use DOS 'SET' command
    to set ULTRASND variable to something like,
    ULTRASND=220,??,??,5,5

    The important bit is the second-to-last value, which must
    be 7 or below. It does not matter if the two last values
    are the same (and would cause hardware conflict), since
    you are not going to use GUS for software emulation while
    running the demonstration.

    After setting the variable, run ultrinit (or iwinit in
    case of GUS PnP).

    MIDAS seems painfully slow when using GUS for replay
    (windows version, using the same soundboard, is a lot faster),
    so you may find it faster by using soundblaster emulation.
    Negative side is that you only get 8bit mono sound at 22kHz.


-=----[ v. About the MIDAS replay speed bug (and how we cope) ]--------------=-

    No, we don't precalculate while we show that pic. We simply play
    one pattern of the demo (at volume 0) and take down how long it
    takes. We found that with GUS and Nosound this pattern takes
    8.046 seconds, while with SB it takes mere 7.928 seconds! Doesn't
    sound horrible? this means that the sync would, towards the end,
    slide approx one second per minute.

    This bug doesn't affect demos that don't care about sync,
    or only sync by order count (but these demos will look different
    on different machines as well).

    Thus, we simply recalculate timer speed for each sound device at
    run-time. We cannot calculate them beforehand since we don't have
    all the cards supported by MIDAS (and frankly, we don't know
    whether this speed bug is caused by celestial action or buggy
    soundboards or something).


-=----[ vi. Detailed credits ]-----------------------------------------------=-

    (Includes spoilers. Please watch the demo before reading this)

    API & linking . . . . . . . . . . . . . . . . . . . Sol
    Kernel  . . . . . . . . . . . . . . . . . . . . . . Tonic
    Kernel filesystem . . . . . . . . . . . . . . . . . Sol
    Kernel optimization . . . . . . . . . . . . . . . . Tremor
    All 3d modelling..  . . . . . . . . . . . . . . . . Tonic
    ..except for the bird by  . . . . . . . . . . . . . Nitro
    ..and the cyberspace by . . . . . . . . . . . . . . Sol
    Graphics  . . . . . . . . . . . . . . . . . . . . . Excel
    Most of the textures  . . . . . . . . . . . . . . . Nitro
    Rest of the textures  . . . . . . . . . . . . . . . Tonic
    Music, part one . . . . . . . . . . . . . . . . . . !Cube
    Music, part two . . . . . . . . . . . . . . . . . . Nitro
    Music, remastering, remixing & guitars  . . . . . . Teque
    L-system fractal (cyberstructure) . . . . . . . . . Sol
    Sprites, AAlines and AAcircles  . . . . . . . . . . Tremor
    Concentrated pessimism  . . . . . . . . . . . . . . !Cube
    Particle system explosions  . . . . . . . . . . . . Sol
    Vector engine . . . . . . . . . . . . . . . . . . . Spector
    Vector engine optimization  . . . . . . . . . . . . Tremor
    Raytrace engine & scenes  . . . . . . . . . . . . . !Cube
    Scripting, coordination & directing . . . . . . . . Sol
    Bumpmapped voxel pilar  . . . . . . . . . . . . . . !Cube
    Delusions of grandeur . . . . . . . . . . . . . . . Nitro
    3D-splines (cyberspace) . . . . . . . . . . . . . . Sol
    Retina  . . . . . . . . . . . . . . . . . . . . . . Tonic
    Mostly absent . . . . . . . . . . . . . . . . . . . void
    Gateway doorframe . . . . . . . . . . . . . . . . . Sol
    Intro sparkles  . . . . . . . . . . . . . . . . . . !Cube
    Site list coordination  . . . . . . . . . . . . . . assassin
    Misc. effects . . . . . . . . . . . . . . . . . . . Sol, !Cube, Tonic
    Audio system  . . . . . . . . . . . . . . . . . . . Midas 1.1.2
    Misc. utils . . . . . . . . . . . . . . . . . . . . Tonic, Spector, Sol
    13h mode palette optimization . . . . . . . . . . . Sol
    Public libraries used . . . . . . . . . . . . . . . Zlib, JPEGlib
    Win95 version (under construction(tm))  . . . . . . Sol

    Trauma banners at assembly generously provided by Janni Haatainen
    Thanks a gawdzillion!


-=----[ vii. Sol rambles about the project and the future ]------------------=-

    This demo was made in a slightly different way compared to any other
    demo we have made (including Hysteria and Dubius demos). First, the
    demo was planned; first talks about it date right after last Assembly.
    First version of design file (with script and stuff) is dated early
    December 1997. First official meeting about it, after building lots
    of code independently, was held in may 1998, in a restaurant, with a
    memo, with most coders attending, and minutes kept. Seven different
    versions of the design file exist, and the demo itself is slightly
    different from all of these due to last minute changes and finding
    out that something works better this way. Some things were, naturally,
    dropped off as they didn't fit in the demo.

    From time to time it occurred to me, and to others, that this isn't so
    much *fun* as democoding should be. It felt more like a job. I don't
    know how well we will fare in assembly but as before, our target is
    to get to the big screen. Anything plus will be a bonus, although I
    know I'm going to be disappointed if we end up last in the compo.

    Coordinating a demo where 8 persons are doing something for it has
    been interesting. I hope you find this demo as enjoyable as I have,
    after getting everything together.

    As for our future, it's a bit cloudy out there.. Teque is making music
    professionally and Nitro is starting to, Spector is following Tremor and
    void to the Helsinki University of Technology, Tonic and !Cube are at
    Helsinki University, and quite frankly, we're growing old.
    It's kind of funny organizing a meeting and having to cope with things
    like family issues, religious issues, job schedules and stuff.

    We have plans for at least one demo yet but I doubt that we will ever
    make a demo project this large anymore. I've decided that TMDC3 will
    be the last TMDC I'm going to organize by myself; after that I'll try
    to get some bunch of people together to keep it going, if it has any
    future now that DOS is dying, and NT console has a bit too much uncertain
    things for my taste (including light backgrounds attribute - it MAY be
    on). Linux? - well yes, that's one possibility. BTW, if anyone cares,
    the ascii art in this infofile are generated with my new textfx2-like
    routines from PCX files.

    Nevertheless everything I've said here is written bored and tired
    after working 10+ hours a day on this project for far too many
    days... so who knows?

    Anyway, check http://www.trakked.com for Nitro's & Teque's MindTrap CD
    and possibly others, http://www.compart.fi/~solar/tmdc for text mode
    demo compo stuff, and http://sauna.net/trauma for trauma stuff and links.
    And don't forget to grab our DEE music disks. Win95 interface may or may
    not surface depending on how I feel about making it.

    And finally, here's the perl script that scrolls in the demo, written
    by tonic:

    |   while
    |   (<>){
    |   tr;A-Z;a-z;;
    |   if (m\.*?
    |   (2.*?4
    |   .*?2)
    |   .*\x) {
    |   push
    |   @_,$1;
    |   x(q`'`);
    |   }}&x(
    |   qq?\n?x3
    |   .q|*|x9);
    |   for $x
    |   (@_) {
    |   &x(qq+$x+.
    |   q- :-)
    |   ;x(q: :x
    |   index($x,
    |   q!4!)
    |   .q~^~);
    |   }sub x{
    |   print
    |   qq^@_\n^;}


-=----[ viii. Member list ]--------------------------------------------------=-

        Handle          | Name             | Function
      - -----------------------------------|--------------- -
        !Cube           | Toni Lönnberg    | Music/Gfx/Code
        Assassin        | Jussi Ryynänen   | Trader/Dists
        Excel           | Jani Oinonen     | Graphics
        Nitro           | Kai-Eerik Komppa | Music
        Sol             | Jari Komppa      | Code/WHQ Sysop
        Spector         | Mikko Nurmi      | Code
        Teque           | Tero Kostermaa   | Music
        Tonic           | Jetro Lauha      | Graphics/Code
        Tremor          | Allan Perämäki   | Code
        void            | Petteri Kaski    | Code
      - ----------------|---------------------------------- -
                        |                  |


-=----[ ix. Production history ]---------------------------------------------=-

        Dubius: (Tremor/Nitro/Tonic mostly)
        * Optimal Torque        - 8th at Assembly'95 demo
        * State of Hate         - 4th at The Party 5 demo
        * Magic View            - 2nd at Abduction'96 demo
        * Machines of Madness   - 1st at Assembly'96 demo
        * Rotaliator            - 5th at Skenery'96 demo
        * Dubious WedTro        - Nitro got married
        * Dubious DemoTunes     - Musicdisk

        DEE: (Nitro/!Cube/Teque/Sol)
        * DEE ONE               - Musicdisk; DemoNews ****+
        * TMDCINV               - textmode demo; DemoNews ***
        * DEE TWO               - Musicdisk; DemoNews ****+
        * TextRace III          - Silly little violent game.

        Hysteria: (of trauma members, !Cube/void/Sol)
        * Hysteric Overload     - 2nd at Assembly'92 demo
        * Silence               - 7th at Assembly'94 demo

        Trauma:
        * Mindtrap              - 3rd at Assembly'97 demo
        * TMDC2INV              - textmode demo
        * TMDC3PRE              - textmode demo
        * DEE 02:42             - Musicdisk
        * DEE 3                 - Musicdisk
        * DEE pi                - Musicdisk
        * Movement'97 invitation dentro
        * Anterpe musicdisk     - Industrial Win95 musicdisk
        * Gateways              - Assembly'98 demo


        + additionally *huge* amount of highly ranked tunes.


-=----[ x. Greetings ]-------------------------------------------------------=-

!Cube sends respects to these musicians:

 Abaddon/Abomination, Agemixer/Scallop, 
 Ambient Move + Velvet /Amable, AMJ + TBB /Extend,
 Andy + Ukulele /Banal Projects,
 Audiomonster + Jesper Kyd /Silents, Azazel/TBL,
 Balrog/TPOLM, Bay Tremore + Sparklite /Paragon,
 Beast + Frazer /The Syndicate, Big Alec/Delta Force,
 Big Jim/Valhalla, Bit Arts + Jester + Virgill /Sanity,
 Carebear + Dune /Orange, Chorus + Sid /Majic 12,
 Clawz/Bomb, Croaker + Shrine /Halcyon, 
 Dizzy + Groo + Heatbeat + Yolk /CNCD,
 Drax + Laxity /Vibrants, Echo + Fanta /Bass,
 Excellence In Art, Fajser/Rage,
 Falcon + Jogeir + Shad + Scorpik /Pulse,
 Fatality/COC, Firefox + Mantronix + Tip /Phenomena,
 Flotsam/Palace, Futile + Kaakao + Resound /Pepper,
 Gatekeeper/Xtacy, Gspot/Recreation,
 Imode + Outshined /Sound Devotion, Jed/Amour,
 Jeff/Camelot, Jugi/Komplex, Julius + Nuke /Lemon.
 Kraku + Prick /Mass, Kristian Rostoen/Blues Muz',
 Lizardking + Vogue /Triton, Mace + Shaft /Extream,
 Mad Max/The Exceptions, Mefis/Tokyo Dawn Records,
 Mellow-D + Necros /FM, Mirko + Prob. /Oxylon,
 Mitch + Dane /Crest, Mordicus/Jamm,
 Mortimer Twang + Supernao /Mono, Mr.Man/Andromeda,
 Mystical/Purple, Oxide/Sonik+Clique, Pink/Abyss,
 Pri + Syndrom /TIA, Purple Motion + Skaven /Future Crew,
 Radium/Effect, Rage/Fobia Design, Scavenger/Synergy,
 Slide/Polka Brothers, Statix/Psychic Link, Tao/Cream,
 Tempest/Damage, Turtle/Accession, Vic/Acme,
 Yaz/Digital, Zodiak/Cascada

!Cube sends greetings to:

 Trauma members, SCS*TRC members, Aggression members,
 2ny + Ace /Palace, Agent -t- /Cream, 
 B.A.T + Chrome + Wingleader /Synergy, Beta/5C,
 Blaze/Effect, Brite-Lite/Alpha Design, Chris/Aura,
 Crawdaddy, DMC + Einstein + The Alien /WOW,
 Distance + Dune /Orange, Ebb, Electric/Extend,
 Emphii + Wildfire /Extream, Evl/DHS, Fear/TBL,
 Feather/TPOLM, Fragment, Fulcrum, Fungus/F4CG,
 Fuse, Grand, Hydron, Ica/Hubris, Illegal Exception/SOTE,
 ISO + XTC-1 /Sentry, Jacky/ACF, Jaffa/Static,
 Jone/Moottori, Maza + Murk /Sonik+Clique,
 Mr.Sex/Byterapers Inc., Penguin/Animal Mine,
 Pizza, Siemen, Tao/Triad, The Guardian + Vic /Camelot,
 Unreal/Pulse, Xenox/AFL'70, Zak/Pure Energy

Assassin's personal greetings :

 all trauma members, random/awe, prob./oxylon
 tapsah/abuse, vige/gaspinc.

Excel's personal greetings :

 Atheist/Balance, Confidence/Balance, Deelite/Balance
 Nike/TRSI, Newt/TRSI, Mad Smiley/Balance
 Pride/TRSI, Grid/Balance, Pantera/Balance
 Vega/Ram Jam, Grace/Crux, Shade/TRSI
 Optic/TRSI, GDM/Looker House, Gorg/Balance
 Grey/Crux, Relief/Puzzle, Ronny/Teklords
 + tons of others ... =) 

Nitro's personal greetings :

  Joshua & Jim Silvey of Trakked Records
  All Traumamemmbers, hell even me
  Prob./Oxylon
  Turtle
  Pehu
  Gimle
  Jiri of Toptronics
  Skaven/FC
  Reality Benders
  Gore/FC
  Visualize/jamm
  Lemming/Orange
  Distance/Orange
  Dread
  Bartesek/Poison
  Reve/5C
  Crest/Magic view
  Kimble, sysop of Codex
  Beta/5c
  Entropy/turp bbs
  Abaddon/Abomination
  K!inky-dudes
  Escape
  Nail
  JFF
  Substance
  Fascination

Sol's personal greetings :

 All of Trauma, Gore of FC, Beta of 5c,
 Crest of Magic View, Darkness of Imphobia,
 Distance of Orange/TPOLM, Doom + Addict of doomsday,
 Gandalf of Pulse, Greenie (sysop of experienced),
 Guru of Sahara Surfers, ICA, Jmagic of K/Complex,
 Liket of Goto10, Matte + Reijo + Jan of Hysteria,
 McGurk/c.o.m.a., Nahkakumimuumi of TPOLM,
 Pehu of asm.org, Pizza (sysop of Venture),
 Riksun I/97 ikimosat, Saracen of EMF,
 The Edge of Cascada, The Joker & others of Crusaders,
 Unreal of Pulse, Svok of Portal Project,
 Adept + adok^hugi + Armitage + AntiByte + basehead + charlydub +
 DarkLegen + Drg + dvb + fuse + GooRoo + icepick + Legend +
 maxter + mcbyte + MirekCz + mrz_ai + multiplex + MZ + Fthr +
 Ravian + Redhound + Reward + siemen + Spansh + SteffoCRS +
 Sunburn + whzGARLIC + _DoC_ + _lots_ of others on #Coders,
 and finally, Mistril Starshine, where ever you are.

Spector's personal greetings :

  Limbo Duck / Recreation
  Gspot / Recreation & Bandwagon
  Reve / Five Coders
  Beta / Five Coders
  Tyrant / Five Coders
  Lego / Five Coders
  Los / Franklyn
  Orbiter / Franklyn
  Codehead / Hcl
  216 / Mfx
  Primon / Radio
  Virne / Coma
  Charly / Essex
  Svok / Portal Project
  Tarzan / tAAt
  Wog / Orange
  Cyberpig / Paragon

Teque's personal greetings :

 Remedy staff, Aggression members
 Turtle / Accession
 Dune and the rest of Orange cult
 Yolk & Juliet & Destop / CNCD
 Future Crew - still alive!

Tonic's personal greetings :

 All Trauma, sYmptom, Coc and tAAt members
 #coders and #suomiscene dudes


-=----[ xi. Contacting trauma members ]--------------------------------------=-

    Need music for your demo/game? Need commercial advertisement?
    Want to hire a programmer? Companies are also welcome.

     WHQ BBS:   TRK +358-9-876 4018  v34
                    +358-9-876 4017  v32bis

     e-mail:    !Cube:          tlonnber@cc.helsinki.fi
                Assassin:       assassin@sci.fi
                Excel:          excelblc@hem.passagen.se
                Nitro:          kai-eerik.komppa@mbnet.fi
                Sol:            solar@compart.fi
                Spector:        spector@pcuf.fi
                Teque:          teque@remedy.fi
                Tonic:          jetro@mindless.com
                Tremor:         aperamak@cc.hut.fi
                Void:           pkaski@cc.hut.fi
                Whole trauma:   trauma@makelist.com

     Snailmail:

        Nitro                           !Cube
        Kai-Eerik Komppa                Toni Lönnberg
        Peltokylantie 2 D 27            Kulotie 1 a 13
        00740 Helsinki                  01450 Vantaa
        Finland                         Finland
        Europe                          Europe


        Tonic                           Assassin
        Jetro Lauha                     Jussi Ryynänen
        Hansakallionkuja 3B10           Lohenevä 3a
        FIN-02780 Espoo                 02170  Espoo
        Finland                         Finland         or call:
        Europe                          Europe         Asylum +358-9-4209437

        Sol                             Spector
        Jari Komppa                     Mikko Nurmi
        Kyläkaskentie 1 A 2             Reunatie 40
        01200 Vantaa                    05820 Hyvinkää
        Finland                         Finland
        Europe                          Europe

        Excel                           Teque
        Jani Oinonen                    Tero Kostermaa
        Kungsg. 9L                      Pakilantie 16 B 253
        553 31 Jönköping                00630 Helsinki
        Sweden                          Finland
        Europe                          Europe

        Void
        Petteri Kaski
        Linnoituksentie 10 J 81
        00940 Helsinki
        Finland
        Europe


-=----[ xii. Distribution sites ]--------------------------------------------=-


        *Name:                        *Number:          *Sysop:    *Country:
- WHQ:
        The Rekola Kingdom node 1     +358-9-8764018    - Sol      - Finland
        The Rekola Kingdom node 2     +358-9-8764017
- Member:
        The Asylum                    +358-9-4209437    - Assassin - Finland
- Distsites:
        Codex                         +358-9-5121413    - Kimble   - Finland
        Cloudcity                     +358-9-3403721    - Distance - Finland
        Galleria                      +358-81-5507265   - Turo     - Finland
        Icezone                       +358-9-3952315    - Phobia   - Finland
        Downtown                      +358-9-3474402    - Dose     - Finland
        TURP                          +358-9-660414     - Entropy  - Finland
        CountZero                     +47-5512-2962     - Yitzhaq  - Norway
        A.C.E                         +33-1-45887548    - Gandalf  - France
        Power Challenge               +45 97 25 01 17   - X-OTiC   - Denmark
        X-PRESS                       +49-30-40632377   - Sinus    - Germany
        X-PRESS                       +49-30-4013654    - Sinus    - Germany
        NightSky                      +49-6104-923299   - Swapper  - Germany
        NightSky                      +49-6104-929977   - Swapper  - Germany
        Datura                        +31-77-3826795    - Demoralize-Holland
        Datura                        +31-77-3872195    - Demoralize-Holland
        AmberDawn                     +31-10-2160945    - Compile   -Holland

        If you have an agreement with us, but your bbs is not on the list,
        please do contact us. (assassin@sci.fi).


-=----[ 80x50 ]--------------------------------------------------------------=-

                                  _wwmWmww_.
                               ad0MMMMMMMMMMw_
                             a0MMMMMMMMMMMMMMMWw
                           _0MMMMMMMMMMMMMMMMMMMA,
                          jMMMMMMMMMMMMMMMMMMMMMMMe
                         jMMMMMMMMMMMMMMMMMMMMMMMMMe
                        jMMMMMMMMMMMMMMMMMMMMMMMMMMM,
                        0MMMMMMMMMMMNMMMPMMMMMMMMMMMW.
                       JMMMMMMMMMP  4MMM: "MMMMMMMMMMb
                       MMMMMMMM@'   4MMM:   "MMMMMMMMM,
                      JMMMMMMMP     4MMM:     MMMMMMMM1
                      0MMMMMMF      4MMM;      MMMMMMM#
                     jMMMMMMP       dMMMi       MMMMMMM;
                     JMMMMMM        0MMM1       JMMMMMM1
                     4MMMMMI        MMMM6        NMMMMM6
                     4MMMMM        jMMMM#        JMMMMMk
                     4MMMME        JMMMMM;        MMMMM8
                     4MMMM1        0MMMMMb        #MMMMf
                     4MMMM:       JMMMMMMM,       4MMMMf
                     JMMMM:       MMMMMMMMh       JMMMM+
                      MMMM       0MMMMMMMMM1      JMMMM
                      4MMM      0MMMMMMMMMMMw     JMMMP
                      JMMM:   _0MMMMMMMMMMMMMb,   JMMM'
                       #MMi _dMMMMMMMMMMMMMMMMMw, dMMP
                        MMW0MMMMMMMMMMMMMMMMMMMMMW0MM'
                        4MMMMMMMMMMMMMMMMMMMMMM"MMMMf
                         MMMMMMMMMMMMMMMMMMMMMf 4MMM
                         JMMMMMMMMMMMMMMMMMMMM1 JMM'
                          4MMMMMMMMMMMMMMMMMMMM0MMP
                           MMMMMMMMMMMMMMMMMMMMMMM
                           JMMMMMMMMMMMMMMMMMMMMM'
                            4MMMMMMMMMMMMMMMMMMMF
                             NMMMMMMMMMMMMMMMMM@
                              MMMMMMMMMMMMMMMMM
                               MMMMMMMMMMMMMMM'
                               "MMMMMMMMMMMMM'
                                "MMMMMMMMMMM!
                                 "MMMMMMMMM'
                                   MMMMMM@'
                                    "MM@^

                _wwwwawwwww   _ww, _w   w, ww,  jww    _ww
                4MMMM3MMMMM6  0MMb 4M   M1dMMW  MMM1   MMMi
                  M8      0#  MPMM.4M   M1##4Mi MfMW  JMYMh
                  ME  jWW0MP JMT4Mi4M   M1## M6 M14M, 0M #M.
                  ME  MMMMM' 0M  Mb4M   M1## #W MIJM1 MD 4M1
                  ME jMMM0w, MP  M04Mp jMfW# 4MxMI MhJMl  MS
                  ME jMf"MM#JMT  4MZMMMMM'W# JMMMf 4M0M   #M.
                  9!  M'  "9*M    M! MMM' *9  "MP  "MM9   "M'

-=---------------------------------------------------------------------------=-