

	[43mHOW WORKSHOP WAS BORN[0m

	or

	[43mRe-Designing the Wheel (sort of).[0m


	by [3mDoug Groat.



   Ed: Here's an article for anyone interested on how to set up their own
  Workbench disk, what to get rid of on a standard Commodore disk, how to
  change a startup-sequence, what are some good utilities to use, etc.


[32m   (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 ))


   This is an article for everybody that is trying to get that bit extra from
  their system. Although aimed mainly at those of us tied to using floppy
  disks, some of the information below may be helpful to those lucky enough
  to have a hard disk drive. Remember though, this is the way that I found
  best for me, and if you can pick some or all of the information below, for
  your needs, then all the better.


	[32mBackground.....

   Ever since I bought my trusty AMIGA, about five years ago now, I have been
  trying little bits and pieces to improve a few things. Not just the way
  that the hardware and software combined, but the way that I performed as
  well. Little things like, lazily some would say, using a Directory
  Utility to discover how disks were put together.  Learning how a
  startup-sequence did what it did, trying to get to grips with the CLI first
  and then the SHELL. Although I can by no means call myself an expert with
  the CLI/SHELL, I now know enough to get myself around a diskette without
  getting into difficulty. It has been a long time, but I think I can say
  that I am no longer a beginner on my system. I have now put together
  several attempts at improving the WORKBENCH disk, each one being somewhat
  improved over its predecessor. This latest attempt being one that I feel
  quite happy about sharing the details with all who may be interested.

	My hardware setup is as follows:

   AMIGA 1000 - running a Phoenix replacement motherboard with 2 meg. of
  RAM. Second disk drive (3 1/2"). Philips CM8833 colour monitor.  Pretty
  basic compared to some, but for the time being, suits me fine.

	[32mWORKSHOP v1.0.....

   In the beginning there was WORKBENCH.

   Now, introducing, [33mWORKSHOP.

   The all singing, all dancing, multi-purpose utility disk. Sounds a bit
  like an ad for some K-Tel product, eh! Only this is much better.

   [33mWORKSHOP[0m has come about through my natural curiosity, and to a
  greater degree, my inability to be satisfied with what I use to do all the
  'hard' work on the AMIGA. Shortly I'll go through the processes to make
  your own [33mWORKSHOP[0m disk, but now I'll explain just what useful bits
  and pieces are on it, and where possible why. You will notice that ALL the
  utilities are 'crunched'. The larger files were processed with Turbo
  Imploder, whilst the smaller (under 90,000 bytes) were done with Power
  Packer. Whilst PP has been extremely useful in the past, Turbo Imploder
  'crunches' large files much better. [Ed: Find Imploder and PowerPacker on
  UT 290, along with lots of other useful utilities.]

    [32mUtility		  Purpose
    [32m----------------------------------------------------------------------

    [33mDirectory Opus Pro[0m       Directory Utility. In my opinion the best of
			     all Dir Utes. Extremely configurable and very
			     easy to use. Although quite large in size, I
			     have it crunched down to 108,712 bytes.

    [33mKDV 5[0m      		     A very good Anti-Virus utility.
			     And, the only one that
			     could get rid of the Saddam virus
			     that I got from a Magazine Cover Disk. That
			     taught me a very good lesson. Crunched size
			     24,932. The disk slave file (brain file) can
			     also be crunched. Another 14,288 bytes.

    [33mTurbo Imploder[0m           A very useful tool. I would not have been
			     able to get as much on [33mWORKSHOP[0m without it.
			     Crunched down to 63,808 bytes.

    [33mPower Packer Pro[0m         For a very long time, one of my most used
			     tools. Good compression results and the
			     ability to crunch text and graphics. Size is
			     37,224.

    [33mNewZap v3.25[0m             Very easy to use file editor. Not used all
			     that often, but invaluable when required.
			     It's down to 21,608 bytes.

    [33mFixDisk v1.2[0m
			     This program has managed to save a lot of
			     files that I managed to delete or otherwise
			     lose, while moving things around. A good all
			     round salvage utility. Size is 33,360 bytes.

    [33mHermit v1.3[0m
			     Screen saver utility plus. Size is 15,280.

    [33mBlitz-A-Disk v4.13[0m
			     Disk optimizer. Probably the best available.
			     I've used B.A.D for some time with no
			     problems at all. Size down to 25,992.

    [33mTurbo-Backup v1.1[0m
			     My favourite copy program. I won't use any
			     other. Size is 14,752 bytes.

    [33mHelp![0m
			     A small very useful utility. Although now
			     becoming a bit dated, still most helpful.
			     Size is 11,336.

    That is what resides in the UTES directory. Let's continue with what
    I have tucked away in the C directory.

    [33mCShell v5.15L[0m            I have only just started using Cshell, so I
			     can't say too much, except that the more I
			     use it, the more I like it. Personal choice,
			     but a better alternative than standard. Size
			     crunched is down to 56,232.

    [33mCygnus Ed Pro[0m            In many people's minds, the best
			     available text editor. Also crunched, to 59,616
			     bytes.

    [33mBoot Save/Restore[0m        Small, useful bootblock utility.Can save or
			     games or special bootblocks, in case of
			     mishap. Size is 3384 bytes.

    [33mBoot Tool[0m  	      Another useful bootblock utility, but does
			     a bit more than BSR. Size is only 2520 bytes,
			     so there's enough room for both.

    [33mDSpin[0m      	      Small disk salvage utility. This program can
			     save a disk, where some others fail. Worth
			     putting on all your utility disks. Size is
			     5196 bytes.

    [33mInf[0m		      Disk information utility. A quick utility
			     to see how much free space is available. At
			     only 488 bytes, its size is negligible.

    [33mVMK[0m		      Vector check utility (used upon startup).
			     Previous versions were virus specific, but
			     now checks to see if vectors are as they are
			     supposed to be. Size is only 1524 bytes.

    [33mSetColors[0m  	      A colour change utility that changes the
			     screen colours, then can save them to the
			     system-configuration file. Only 2060 bytes.

    [33mMightyMouse[0m	      A screen blanker, mouse blanker/accelerator,
			     Hot-Key activator, window activator, clock
			     thingy utility. Crunched to 3,920 bytes. I am
			     really only using it as a Hot-Key for a
			     NEWCLI, and clock and window activator.

   And of course not forgetting the archivers - [33mARC, LHarc and ZOO.
  'Crunched', of course at 26,000, 19,676 and 25,052 bytes respectively.

	Also, in the same directory are:

    [33mPatchReq[0m   	      A patch for system requesters and arp file
			     requester. Requesters will open up under the
			     mouse pointer. Handler and PatchReq both come
			     to only 2,188 bytes.

    [33mRunBack[0m    	      Versatile alternative for run. I am actually
			     using it as an alternative for the wait
			     command. Only a tiny 468 bytes.

    [33mPPAnim[0m     	      Animation player from the Power Packer
			     stable. This utility will run most animation
			     files and at only 5,916 bytes it is well
			     worth including.

    [33mSetClock[0m   	      As I have a battery backed clock on the
			     Phoenix board, I may as well use it. This and
			     the Date command both come to 9,092 bytes.

    [33mFF[0m 		      Fast Fonts v1.31 to speed up any text output.
			     Well worth including at 3,320 bytes.

    [33mFind[0m       	      A small search utility that will look for a
			     file and give you info about it if found.
			     Very useful at only 4,984 bytes.

    [33mCLS[0m		      Will clear the screen for you, and only 128
			     bytes.

    [32mAnd of course[0m, a few standard type commands such as - [33massign, CD,
    [33mDate, EndCLI, execute, failat, LoadWB, mount, NewCLI, Path, stack and
    [33mType.

   So as you can see there are a number of very useful utilities for my use
  with [33mWORKSHOP.[0m Of course, since I don't possess a printer, so
  there are no printer or related utilities available. For me, personally,
  it is not a problem.

	[32mHow it all comes together.....

   First thing you have to do if you if you are going to make a [33mWORKSHOP
  clone, is to make a copy of your Workbench disk. Use whatever means are
  available - if you have two drives, you can't go past [33mTurboBackup.
  Now, I'm not going to get into a slanging match with anyone over what
  copier is the 'best'. Personal choice is what it is all about. What I
  find works well for me may not be the case for someone that has been using
  another copier for two years without a problem. The suggestions I make,
  are just that - suggestions. Use whatever you feel confident with. 'Nuff
  said.

   If you are only a beginner, you could use the standard Workbench
  [3m[32mDUPLICATE[0m command from the Workbench Menu. Once the copy is
  made, you will need to make a bit of room on the disk to fit the utilities
  you will want to use. To do this you will need to have access to a
  [3m[32mDirectory Utility[0m (the easiest way). Until you can make
  enough room on your new disk, use any available Directory Utility you can
  get. Check out the [32mMEGADISC[0m catalogue, you will find one to suit
  your requirements. [Ed: Get DirWork on UT287 by Chris Hames.]

   Boot up with your WORKBENCH copy, open up the disk and set the colours and
  pointer to your liking. If you do this first, then you can forget about
  it. And, when you next boot up the screen will be to your liking straight
  away. While you have the disk open, and to save a bit of time, you can
  delete a few 'drawers' (directories) while you're at it. You can use the
  [3m[32mDISCARD[0m option from the Workbench Menu.


	[32mBelow is a list of files/directories that I did away with:

   [33mEmpty[0m directory and .info file. Although they take up very little
   room, they don't get used, so out they go.

   [33mTrashcan[0m directory and .info file. Same as above. With a Directory
   Utility, the Trashcan becomes obsolete.

   [33mExpansion[0m directory and .info file. I can't see myself using these in
   the near future.

   Depending on which Directory Utility you wish to use, you now may have
  enough room to copy it over to your new disk. If not, don't panic.  Just
  re-boot with the disk containing the DU, and we'll continue.

   Using the DU, go into the 'devs' directory first. Now you have to ask
  yourself some important questions. For instance -

   [3m[32mWill I need these keymaps?[0m Very unlikely! Unless you're into foreign
   languages and send printed text to overseas friends. Of course, it's
   entirely up to you. I deleted them all.

   [3m[32mAm I ever going to use the clipboard?[0m If you have a decent text editor
   you shouldn't need it. Go on, chuck it out!

   [3m[32mDo I have a printer, or will I be getting one soon?[0m If you answered
   yes here, then you will have to retain at the very least, the printers
   directory containing the correct printer driver for your system. If
   you are going to get a printer soon, but unsure which one, leave all
   the drivers in place. Remember, you can delete the incorrect ones at a
   later stage. As I mentioned before, I don't have a printer, so I
   dumped the lot. Now we come to the other files in this directory.
   If you got rid of the clipboard, you can delete the clipboard.device.
   Same goes for the printer.device IF you deleted the printer directory.
   If you got rid of the printer, you can also lose the serial.device
   and parallel.device too. Do you want to listen to the AMIGA speak?
   No, either did I! Out goes the narrator.device. If you've gone the
   same as I did, you should now be left with the following files -

   [33mMountList, RamDrive.device and system-configuration.[0m Good.

   Let us move on to the 'fonts' directory. Do you like the system font?
   I didn't. I use one called SIESTA, which I find is easy on the eyes
   and quite pleasant to look at. So, I deleted all the fonts that were
   in here and moved over the SIESTA files. If you are using a printer,
   you may consider setting up a seperate disk full of your favourite
   fonts, and load them from there as required. This can save a heck of a
   lot of space. Once again, it's your choice. When you've decided what
   to do about fonts, it's time to move on to the 'L' directory. In here,
   all I have retained are -

   [33mDisk-Validator.[0m Necessary for the operating system to be able to
		   recognise what type of disk it is.

   [33mNull-Handler.[0m   Required by RunBack.

   [33mPatchReq-Seg.[0m   Required by PatchReq for the requesters used by the
		   ARP library. (more on this in a minute).

   [33mRam-Handler.[0m    Required for the RAM disk to function properly.

   [33mShell-Seg.[0m      Used by CSH.

   Of course, if you are using a Hard Disk, you will keep FastFileSystem, and
  the Aux-Handler. I'm not 100% sure about that, so if in doubt - leave it
  in [Ed: Chuck the AUX-Handler too - it's only used for accessing your
  computer by a modem from another computer, and only just works, anyway.] .
  Next directory to go to is the 'Libs' directory. This is where all the
  librarys are kept for various programs and functions.  There isn't much you
  can get rid of here, but it may be better to tell you what I have in this
  directory on [33mWORKSHOP[0m -

   [33mARP.library[0m 	     Used by CSH and for the requesters. I have
			    some of the ARP commands in the 'C' directory
			    that also require this library.

   [33mDiskfont.library[0m         Used by the operating system.

   [33mExplode.library[0m          Used by Turbo Imploder.

   [33mIcon.library[0m	     Used by the operating system.

   [33mMathtrans.library[0m        Used by the operating system.

   [33mPowerPacker.library[0m      Used by Power Packer.

   [33mRequester.library[0m        Used for the requesters.

   [33mStOpus.library[0m           Used by Directory Opus.

   [33mVersion.library[0m          Used by the operating system.


   O.K. that takes care of the 'Libs' directory. Now we come to the 'Prefs'
  directory. Some more questions for you, now. Have you got your printer
  setup saved? Have you set Screen preferences to your liking? If you
  answered [3m[32mYES[0m, then you can safely delete the entire directory.
  If you answered [3m[32mNO[0m, then you should leave 'Prefs' intact till
  later. Remember, you can always do a bit of shuffling with files and
  programs, to get things setup in a manner that you are happy with.

   Lets go past the 'S' directory for the time being, and move on to the
  'System' directory. Without getting too drawn out, you have to decide
  whether you want to retain any of these files. You could perhaps move the
  'Mem' files to the 'C' directory and use them from there. If you are going
  to be using another copier, then the 'diskcopy' file can be discarded. You
  may need to keep the 'InitPrinter' file if you will be using a printer (I'm
  not entirely sure about that one - Ed: not required). I actually got rid
  of the whole lot, directory, everything. The 't' directory can be deleted
  if you want. I did. Then we move on to the 'utilities' directory. I
  retained nothing in here, making room for all the other utilities that I
  intended putting into [33mWORKSHOP[0m. If you are keen on the AMIGA's
  speech capabilities, you'll need to retain the Say file.  And if you want
  to dump graphics to your printer, you should retain the GraphicDump file.
  Though I think most printers could have graphics sent through a DU. The DU
  will probably have a clock as well. And as for a Calculator, look no
  further than Help! or CalKey for much better versions.

   Now it's time to bring a few of those utilities over from their respective
  hiding spots on all those other disks. Don't try to copy over too many at
  a time. Say bring in your Text Editor and then a Directory Utility, if you
  aren't using it already. Once you have those in their repective drawers,
  you may have to sit back, check out how much room you have left on your new
  disk, and what else you would like to have and use as well. And also what
  method you will be using to make them operational. Will you, perhaps, have
  just the DU loading from the startup-sequence or will you have a Shell or
  CLI window open to use. I can't answer those questions for you, but I can
  tell you how I have [33mWORKSHOP[0m set-up.

	My startup-sequence is as follows -

	[32mcls
	[32mc/vmk
	[32massign CSH: SYS:C
	[32mmount NULL:
	[32mResident C:RunBack
	[32mResident CLI L:Shell-Seg SYSTEM PURE ADD
	[32mResident SYS:C/csh ADD
	[32mNEWCLI FROM s:csh-startup
	[32mendcli

	meaning line for line:

	[33mcls[0m - clears the screen, starts things off in a tidy fashion.
	[33mc/vmk[0m - runs VMK from the 'C' directory to check the system vectors,
	and then lists them.
	[33massign CSH: SYS:C[0m - assigns CShell to the 'C' directory of the
	boot-disk, which of course is, [33mWORKSHOP[0m. There is another file that it
	will look for as part of it's inbuilt help facility, called CSH.Doc.
	[33mmount NULL:[0m - this will 'mount' the Null-Handler required by RunBack
	to function successfully.
	[33mResident C:RunBack ADD[0m - makes RunBack a resident command.
	[33mResident CLI L:Shell-Seg SYSTEM PURE ADD
	[33mREsident SYS:C/csh ADD[0m - These two lines add CShell and the Shell-Seg
	to the resident list. (I have to be honest I don't fully understand
	how this works yet, but after a little bit of experimentation, I do
	know that when I open a new CLI window it does work a bit quicker).
	[33mNEWCLI FROM s:csh-startup[0m - Requests a new CLI window to open
	and continue from this script file, setting up the window with CShell
	and all the commands that I have set-up to function within CShell.
	[33mendcli[0m - this closes the initial window, that opens when you first
	boot up.

   So the first part of the startup-sequence has begun, and the second last
  line - NEWCLI FROM s:csh-startup - then continues on. This script file
  contains -

	[32mStack 8000
	[32mcsh -r s:firstlogin.sh

	Again explaining each line -

	[33mStack 8000[0m - Sets the 'stack' space to 8000 bytes.

	[33mcsh -r s:firstlogin.sh[0m - Starts CShell rolling along in resident mode
	(-r) and tells it to continue loading from the 's' directory a script
	file called firstlogin.sh.

   This file is the first file that CShell looks to, for information on what
  else to load and where to look for the next part of the startup.  It
  contains -

	[32mFF >NIL: Siesta.font
	[32mrunback -2
	[32msetclock load
	[32mrunback -2
	[32mmightymouse >NIL:
	[32mrunback -2
	[32mpatchreq
	[32mrunback -2
	[32mloadwb Delay
	[32mrunback -2
	[32msource s:login.sh

	Again explaining -

	[33mFF >NIL: Siesta.font[0m - Loads FastFonts using Siesta font and sending
	the initial output to NIL:, meaning that nothing comes up on screen to
	indicate that FastFonts is loading.
	[33mrunback -2[0m - this is one way to utilise the runback command. In this
	case I am using it as an alternative to the standard 'wait' command.
	What it does is signals that the next process or file to be loaded
	should wait for 2 seconds before it begins. I find that although the
	startup is increased slightly, it makes for less disk thrashing and
	conflict in the disk drive as one program starts loading as the last
	one is trying to finish. Each instance of RunBack in this script file
	has the same effect.
	[33msetclock load[0m - If you have a battery-backed clock, then setclock will
	load it for you and in this case present the date and time on screen.
	[33mmightymouse >NIL:[0m - loads mightymouse from it's configuration file in
	the 's' directory. Enables auto-activtion on windows, small clock for
	the time and a Hot-Key combination for a NEWCLI (Left Amiga-Esc).
	[33mpatchreq[0m - Patches the ARP requesters to the system. Instead of
	getting the usual Commodore requesters, you get a small, easy to look
	at, unoffensive one.
	[33mloadwb Delay[0m - loads workbench with a slight delay process.
	[33msource s:login.sh[0m - lets CShell know that it's set-up commands are to
	be found in another script file in the 's' directory - login.sh.

   This next file is the 'biggie', as it tells CShell how to set itself up.
  Where to position the window and how big. What to actually call the
  window. It sets up all the [32m'alias'[0m commands to be able to use
  just a couple of keystrokes instead of typing in the whole command to run a
  program. Sets the prompt to whatever you want. And last, but not least,
  sets up the[32m 'Function'[0m keys as [33m'Hot-Keys'[0m. That is all
  you have to do is press the appropriate 'F' key to load a program or
  perform a specific function. To go through this file line by line would
  take up far too much room, but if you study it for a while, you will be
  able to understand how simply it actually works.

	[32mwindow 0 70 640 186
	[32mset _titlebar WORKSHOP v1.0
	[32mset _exit quit;endcli
	[32mset _prompt "[33m[0mDOUG >"

	[32malias an "echo ..........Use requester to load Anim;cppanim"
	[32malias bl "echo ..........Loading Blitz-A-Disk;utes/blitz"
	[32malias bsr "echo    ..........Loading BSR;c/bsr"
	[32malias bt "echo ..........Loading BootTool;c/boottool"
	[32malias c0 "echo ..........Going to check df0:;c/checkdisk df0:"
	[32malias c1 "echo ..........Going to check df1:;c/checkdisk df1:"
	[32malias cdc "cd sys:c;dir"
	[32malias cds "cd sys:;dir"
	[32malias cd1 "cd df1:;dir"
	[32malias do "echo ..........Directory Opus now loading;utes/do"
	[32malias e1s "c/ed df1:s/startup-sequence"
	[32malias ea "echo ..........Going to edit aliases;c/ed s/login.sh"
	[32malias es "echo ..........Going to edit startup;c/ed s/startup-sequence"
	[32malias fd "echo ..........Loading FixDisk;utes/fixdisk"
	[32malias He "echo ..........Loading Help!;utes/help!"
	[32malias hm "echo ..........Loading Hermit;utes/hermit"
	[32malias i0 "c/inf df0:"
	[32malias i1 "c/inf df1:"
	[32malias im "echo ..........Loading Imploder;utes/imploder"
	[32malias kdv "echo ..........KDV 5 loading;utes/kdv5"
	[32malias nz "echo ..........Loading Newzap;utes/newzap"
	[32malias pp "echo ..........Loading Power Packer;utes/pp"
	[32malias tb "echo ..........Loading TurboBackup;utes/turbo"
	[32malias we "window 0 70 640 186
	[32malias wl "window -l"
	[32malias ws "window -s"
	[32malias vmk "c/vmk"

	[32malias key1 "echo ..........Loading Opus;utes/do"
	[32malias key2 "echo ..........Loading Blitz;utes/blitz"
	[32malias key3 "echo ..........Loading FixDsisk;utes/fixdisk"
	[32malias key4 "echo ..........Loading NewZap;utes/Newzap"
	[32malias key5 "echo ..........Loading Turbo Imploder;utes/imploder"
	[32malias key6 "echo ..........Loading Help!;utes/help!"
	[32malias key7 "echo ..........Loading Hermit;utes/hermit"
	[32malias key10 "echo ..........Loading KDV V;utes/KDV5"

	[32malias key11 "echo ..........NewShell on the way;c/newcli"

	[32mset f1 key1^m
	[32mset f2 key2^m
	[32mset f3 key3^m
	[32mset f4 key4^m
	[32mset f5 key5^m
	[32mset f6 key6^m
	[32mset f7 key7^m
	[32mset f8 key8^m
	[32mset f9 key9^m
	[32mset f10 key10^m

	[32mset F1 key11^m

   So, there you have it, that's how is brought together in the startup-
  sequence. Although it does seem a bit over-complicated, once you get into
  how it all pieces together, it is really quite simple. The other files
  contained in the 's' directory are the configuration files for Directory
  Opus, Cygnus Ed , Power Packerand MightMouse. And last, but not least, the
  CLI-Startup file. This file is called upon whenever a NEWCLI is requested.
  A very simple script file containing -

	[32mcsh s:login.sh

   This tells the new CLI to go to the login.sh script and continue from
  there. This then makes every CLI window I call up into another CShell
  window, with all the features and functions that are available.

   Now, once you've made your decisions on how you are going to proceed with
  your [33mWORKSHOP[0m disk, it is really just a process of adding and
  modifying. Whether you are going to use your DU to run all of the other
  programs, or set up a Shell environment similar to what I have done with
  CShell. Transfer just a couple of programs at a time, then see how much
  room you have. If you are running low on space, try using one of the
  crunching programs to reduce the file size. The only real drawbacks (in my
  opinion, minor) with crunched programs are that it takes slightly longer to
  load them and they require more memory to run them as they have to be
  'un-packed' in memory first. But, the majority of memory is returned once
  the program has been unpacked.

	[32mThe End Analysis.....

   Trial and error. Trial and error. To get to know how to put together
  useful utility disks, and get to know how our systems work is really bound
  by those words. I think that it is the only way to get any sort of
  experience, not only with the computer world, but in life as well.

   If you happen to make a mistake, don't worry about it. Learn from it and
  try not to make the same mistake next time. Do a bit at a time.  Make a
  couple of changes, try them. If they work successfully, then try a couple
  more. If you find they don't work, try and find out why.

   Experiment. The only thing you can really hurt is the [32m[3mBACKUP[0m
  you made.  After all it is only a backup. The original is sitting safe and
  sound in your disk-box.

   I hope you found this article of some help, in some way.

	[32mThe Credits.....

   I can't sign off without thanking the people who have helped me get to
  know how to do things, and for their programs that have helped me to get
  into the learning process a bit easier. They are:

	Steve Wright - my brother-in-law, who has been an invaluable source of
	information and help, with answers to all my questions.

	Tim Strachan and MEGADISC - another invaluable source of information
	and help. And the MEGADISC library for the source of many great
	programs.

	Jonathan Potter - for Directory Opus Professional. Not only a great
	program, but if you go a little deeper a fantastic learning tool, too.

	Nico Francois - for Power Packer. This program helped me manage to get
	a lot more onto the earlier disks that I fiddled with.

	Thanks heaps,

				[3mDoug Groat.



[32m   (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 )) (( 27 ))



